树的重心
来源:互联网 发布:网络教育高校 编辑:程序博客网 时间:2024/04/29 05:44
#include <map>#include <set>#include <stack>#include <queue>#include <cmath>#include <ctime>#include <vector>#include <cstdio>#include <cctype>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>using namespace std;#define INF 0x3f3f3f3f#define inf -0x3f3f3f3f#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define mem0(a) memset(a,0,sizeof(a))#define mem1(a) memset(a,-1,sizeof(a))#define mem(a, b) memset(a, b, sizeof(a))typedef long long ll;const int maxn=21000;vector<int>G[maxn];int vis[maxn];int son[maxn];int ans,arise;;int n;void init(int n){ for(int i=1;i<=n;i++) G[i].clear(); mem0(vis);}void dfs(int s){ vis[s]=1; son[s]=0; int balance=0; for(int i=0;i<G[s].size();i++){ int x=G[s][i]; if(vis[x]) continue; dfs(x); son[s]+=son[x]+1; balance=max(balance,son[x]+1); } balance=max(balance,n-son[s]-1); if(balance<arise||(balance==arise&&s<ans)){ arise=balance; ans=s; }}int main(){ int t; scanf("%d",&t); while(t--){ int x,y; scanf("%d",&n); init(n); for(int i=0;i<n-1;i++){ scanf("%d%d",&x,&y); G[x].push_back(y); G[y].push_back(x); } ans=1,arise=INF; dfs(1); printf("%d %d\n",ans,arise); } return 0;}
1 0
- 树的重心
- poj1655树的重心
- 求树的重心
- 树的重心
- 树的重心
- 树的重心、直径
- poj3107 树的重心
- 树的重心
- 树的重心
- 树的重心
- 树的重心
- 树的重心
- 树的重心
- 树的重心
- 树的重心
- poj1655(树的重心)
- 求树的重心
- 树的重心
- 继承中的构造方法
- Hdu 5308 I Wanna Become A 24-Point Master Hdu 5305 Friends 2015 Multi-University Training Contest 2
- 7月24号,本人为新手每天都会更新本天所学内容,如果有错请大神可以指出,谢谢。
- hdu 4266 The Worm in the Apple (线段树)
- 数据库事物隔离级别通俗理解
- 树的重心
- struts ognl表达式底层执行原理
- Universal-Image-Loader分析 第一篇
- cocos2d-x 3.4 VS2013无法打开包含文件extensions/ExtensionExport.h
- n皇后问题(摘自算法竞赛入门)---15.7.24
- STM32F10x_PWR
- JSON解析、JAVA常用的工具类、JAVA集合框架、JAVA泛型、枚举
- poj2342.Anniversary party(树形dp)
- Hdu 5303 Delicious Apples 2015 Multi-University Training Contest 2