| 18777 | 2025-11-04 17:52:08 | algopro | Fire on a Tree | cpp17 | Elfogadva 100/100 | 398ms | 45108 KiB |
// UUID: 26c668a5-3c89-4697-8472-bb923c3ef991
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<vector<int>> adj, dpv;
vector<int> ledp, dp, dpvsum;
void dfs1(int v, int p) {
int maxi = 0;
for (int u : adj[v]) {
if (u==p)continue;
dfs1(u, v);
maxi=max(maxi, ledp[u]);
ledp[v]+=ledp[u];
}
ledp[v]++;
ledp[v]-=maxi;
return;
}
void dfs2(int v, int p) {
dpvsum[v]++;
for (int u : adj[v]) {
if (u==p) {
if (adj[u].size()<=2) {
dpv[v].push_back(1);
dpvsum[v]++;
} else {
if (dpv[u][0]==ledp[v]||dpv[u][1]==ledp[v]) {
// dpv[v].push_back(dpv[u][2]);
// dpvsum[v]+=dpv[u][2];
dpv[v].push_back(dpvsum[u]-dpv[u][0]-dpv[u][1]);
dpvsum[v]+=dpvsum[u]-dpv[u][0]-dpv[u][1];
} else {
// dpv[v].push_back(dpv[u][1]);
// dpvsum[v]+=dpv[u][1];
dpv[v].push_back(dpvsum[u]-dpv[u][0]-ledp[v]);
dpvsum[v]+=dpvsum[u]-dpv[u][0]-ledp[v];
}
}
} else {
dpv[v].push_back(ledp[u]);
dpvsum[v]+=ledp[u];
}
}
sort(dpv[v].rbegin(), dpv[v].rend());
dp[v]=dpvsum[v]-dpv[v][0];
for (int u : adj[v]) {
if (u==p)continue;
dfs2(u, v);
}
}
int main() {
cin >> n;
adj.assign(n+1, {});
dpv.assign(n+1, {});
dp.assign(n+1, 0);
ledp.assign(n+1, 0);
dpvsum.assign(n+1, 0);
for (int i = 1; i < n; i++) {
int a, b;
cin >> a >> b;
adj[a+1].push_back(b+1);
adj[b+1].push_back(a+1);
}
dfs1(2, 0);
dfs2(2, 0);
for (int i = 1; i <= n; i++)cout<<dp[i]<<' ';
cout<<'\n';
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 508 KiB | ||||
| 2 | Elfogadva | 1ms | 316 KiB | ||||
| subtask2 | 35/35 | ||||||
| 3 | Elfogadva | 1ms | 316 KiB | ||||
| 4 | Elfogadva | 1ms | 316 KiB | ||||
| 5 | Elfogadva | 1ms | 316 KiB | ||||
| 6 | Elfogadva | 1ms | 316 KiB | ||||
| 7 | Elfogadva | 1ms | 316 KiB | ||||
| subtask3 | 25/25 | ||||||
| 8 | Elfogadva | 1ms | 316 KiB | ||||
| 9 | Elfogadva | 2ms | 564 KiB | ||||
| 10 | Elfogadva | 3ms | 1012 KiB | ||||
| 11 | Elfogadva | 3ms | 564 KiB | ||||
| 12 | Elfogadva | 3ms | 576 KiB | ||||
| 13 | Elfogadva | 3ms | 564 KiB | ||||
| subtask4 | 40/40 | ||||||
| 14 | Elfogadva | 162ms | 14956 KiB | ||||
| 15 | Elfogadva | 232ms | 20184 KiB | ||||
| 16 | Elfogadva | 326ms | 45108 KiB | ||||
| 17 | Elfogadva | 365ms | 25900 KiB | ||||
| 18 | Elfogadva | 312ms | 23348 KiB | ||||
| 19 | Elfogadva | 338ms | 24884 KiB | ||||
| 20 | Elfogadva | 314ms | 25904 KiB | ||||
| 21 | Elfogadva | 377ms | 25400 KiB | ||||
| 22 | Elfogadva | 398ms | 24892 KiB | ||||