Submission #1164416

#TimeUsernameProblemLanguageResultExecution timeMemory
1164416t9unkubjPower Plant (JOI20_power)C++20
100 / 100
64 ms20096 KiB
#include"bits/stdc++.h"
using namespace std;
#ifndef EVAL
#define dbg(x) cout<<#x<<" := " <<x<<endl;
#define dbgv(x) \
for(int vv=0;vv<x.size();vv++){if(vv)cout<<"  ";\
    cout<<x[vv];\
}\
cout<<endl;\

#else
#define dbg(x) (void)x
#define dbgv(x) (void)x
#endif
using ll=long long;
#define rep(i,n) for(ll i=0;i<(ll)(n);i++)
#define drep(i,n) for(ll i=ll(n)-1;i>=0;i--)
#define REP(i,n,m) for(ll i=(ll)(n);i<(ll)(m);i++)
#define DREP(i,n,m) for(ll i=(ll)(n);i>=(ll)(m);i--)
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
template<class T>using vc=vector<T>;
template<class T>using vvc=vc<vc<T>>;
template<class T,class F>
int chmin(T&a,F b){
    if(a>b){
        a=b;
        return 1;
    }
    return 0;
}
template<class T,class F>
int chmax(T&a,F b){
    if(a<b){
        a=b;
        return 1;
    }
    return 0;
}
void solve(){
    int n;
    cin>>n;
    vvc<int>g(n);
    rep(i,n-1){
        int a,b;
        cin>>a>>b;
        g[--a].push_back(--b);
        g[b].push_back(a);
    }
    string s;
    cin>>s;
    int ans=0;
    auto dfs=[&](auto&dfs,int u,int v)->int{
        ll sm=0;
        ll mx=0;
        for(auto&x:g[u]){
            if(x==v)continue;
            auto res=(dfs(dfs,x,u));
            sm+=res;
            chmax(mx,res);
        }
        if(s[u]=='1'){
            chmax(ans,mx+1);
            chmax(ans,sm-1);
            sm=max<int>(1,sm-1);
        }else{
            chmax(ans,sm);
        }
        return sm;
    };
    dfs(dfs,0,-1);
    cout<<ans<<"\n";
}
int main(){
#ifndef EVAL
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
    cin.tie(0)->sync_with_stdio(0);
    solve();
}
/*
2*on-シュタイナー木のsizeがうれしさ
dp[v]:=v を塗った時のmax


*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...