POJ 1655 Balancing Act
2016-07-13 09:52
573 查看
只要一次无根树转有根树就可以计算了,一开始每个点都转,发现那就不是动态规划,是枚举了。。。。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std; const int maxn=20000+100; vector<int> G[maxn]; int son[maxn],f[maxn],ans,flag,n; void dfs(int u,int fa) { int maxson=0,d; son[u]=0; d=(int)G[u].size(); for(int i=0;i<d;i++) { int v=G[u][i]; if(v==fa) continue; dfs(v,u); son[u]+=son[v]+1; maxson=max(maxson,son[v]+1); } maxson=max(maxson,n-1-son[u]); if(maxson<ans||(maxson==ans&&u<flag)){ ans=maxson; flag=u; } } int main() { int t,u,v; scanf("%d",&t); while(t--) { scanf("%d",&n); memset(son,0,sizeof(son)); memset(f,0,sizeof(f)); for(int i=1;i<=n;i++) G[i].clear(); for(int i=1;i<=n-1;i++){ scanf("%d%d",&u,&v); G[u].push_back(v); G[v].push_back(u); } ans=(1<<30); flag=(1<<30); dfs(1,-1); printf("%d %d\n",flag,ans); } return 0; }
相关文章推荐
- Linux上Redis的安装过程以及注意事项
- Objective C类方法load和initialize的区别
- 以SpringMVC框架为中心疯狂扩展-01、Maven搭建webapp
- cordova iOS平台的插件开发
- css之absolute
- mkdir命令(建立一个目录) rmdir命令(删除一个目录) rm命令(删除文件)
- 【HDU3247】 Resource Archiver(DP+AC自动机+最短路)
- Git 常用命令
- Mysql 数据库crash恢复
- StringBuffer类的简入
- Html中使用自定义图片来实现checkbox显示
- IO流复制文本文件五种方法
- Docker入门实战
- 线程死锁的可能情况
- Ubuntu 14.04 64bit上安装LNMP环境
- linux命令之端口占用
- GetAsyncKeyState 函数 上下左右键 回车键等的判断【网上摘抄,方便查询】
- GetAsyncKeyState 函数 上下左右键 回车键等的判断
- 缺少动态连接库.so--cannot open shared object file: No such file or directory
- uri上一层、再上一层、下一层、下层路径怎么写?