Tree cutting

#include <bits/stdc++.h> const int N = 1e5 + 10, M = 2 * N, mod = 1e9 + 7; using namespace std; int h[N], e[M], ne[M], idx = 0; int n, s, siz[N]; bool st[N]; void add(int x, int y){ e[idx] = y, ne[idx] = h[x], h[x] = idx ++; } void dfs(int u, int fa){ siz[u] = 1; for(int i = h[u]; i != -1; i = ne[i]){ int j = e[i]; if(j == fa) continue; dfs(j, u); if(siz[j] > n / 2) st[u] = false; siz[u] += siz[j]; } if(n - siz[u] > n / 2) st[u] = false; } int main() { memset(h, -1, sizeof h); memset(st, true, sizeof st); cin >> n; for(int i = 1; i < n; i ++){ int x, y; cin >> x >> y; add(x, y), add(y, x); } dfs(1, -1); bool flag = true; for(int i = 1; i <= n; i ++){ if(st[i]){ cout << i << endl; flag = false; } } if(flag){ puts("NONE"); } return 0; } /* 3 100 1 2 3 1 2 2 3 */

__EOF__

本文作者可爱的卤蛋
本文链接https://www.cnblogs.com/acwhr/p/18004801.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   可爱的卤蛋  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示