제출 #1254082

#제출 시각아이디문제언어결과실행 시간메모리
1254082sinatbtfardPower Plant (JOI20_power)C++20
0 / 100
2 ms5212 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int maxn = 2e5 + 10; int n; vector <int> adj[maxn]; string s; void read (){ cin >> n; for (int x, y, i = 0; i < n - 1; i++){ cin >> x >> y; adj[x].push_back(y); adj[y].push_back(x); } cin >> s; } int ans, dp[maxn]; void dfs (int v = 1, int p = 0){ int sum = 0; for (auto u : adj[v]){ if (u == p) continue; dfs(u, v); ans = max(ans, dp[u] + (s[v - 1] == '1')); sum += dp[u]; } ans = max(ans, sum); dp[v] = max(sum - (s[v - 1] == '1' && sum > 0), (int)(s[v - 1] == '1')); // cout << v << " " << dp[v] << '\n'; } void solve (){ dfs(); } void print (){ if (s != string(n, '0')) ans = max(ans, 1ll); cout << ans; } int32_t main (){ ios_base::sync_with_stdio(0), cin.tie(0); read(); solve(); print(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...