poj1955 Balancing Act
来源:互联网 发布:mac sdk环境变量 编辑:程序博客网 时间:2024/05/21 15:50
题意:
就是去掉树上的一个节点,看看剩下的子树中最大的是多少,然后在这些最大值中求一个最小值,如果有多个点都是最小值,输出序号最小的。
思路:一遍dfs ,保存求出每个点的子树里最大的节点个数。
#include<cstdio>#include<cstring>#include<vector>#include<iostream>using namespace std;const int N=20000+10;int sum[N],ans[N],n,m;vector<int>E[N];void dfs(int cur,int father){ sum[cur]=1; for(int i=0;i<E[cur].size();i++){ int son=E[cur][i]; if(son==father) continue; dfs(son,cur); sum[cur]+=sum[son]; ans[cur]=max(ans[cur],sum[son]); } ans[cur]=max(ans[cur],n-sum[cur]);}int main(){ int T;scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=1;i<=n;i++){ sum[i]=0;ans[i]=0;E[i].clear(); } for(int i=0;i<n-1;i++){ int a,b;scanf("%d%d",&a,&b); E[a].push_back(b); E[b].push_back(a); } dfs(1,-1); int minn=1; for(int i=1;i<=n;i++){ if(ans[minn]>ans[i]){ minn=i; } } printf("%d %d\n",minn,ans[minn]); }}
0 0
- poj1955 Balancing Act
- Balancing Act
- Balancing Act
- poj 1655 Balancing Act
- poj 1655 Balancing Act
- HDU 1655 Balancing Act
- poj 1655 Balancing Act
- poj1655(dfs) Balancing Act
- [PKU1655]Balancing Act
- POJ 1655 Balancing Act
- POJ1655--Balancing Act
- poj 1655 Balancing Act
- poj 1655 Balancing Act
- POJ 1655 Balancing Act
- poj 1655 Balancing Act
- POJ 1655:Balancing Act
- Poj 1655 Balancing Act
- POJ 1655 Balancing Act
- php输出系统当前环境
- HDU 5898 - odd-even number
- 练习函数调用。
- Spring Data Redis 二:RedisTemplate实现事物问题剖析和解决
- 惠山赏菊 & 梅园赏桂
- poj1955 Balancing Act
- 曾经的iOS 9,为前端世界都带来了些什么?
- MySQL 数据库 alter 和 update 的区别
- C语言结构体对齐总结
- 328. Odd Even Linked List
- |洛谷|NOI导刊|堆|黑匣子_NOI导刊2010提高(06)
- 出现Permission denied的解决办法
- php使用PDO连接操作数据库
- DEVC++(1)单文件实现重载运算符的十六进制数类