树的重心(模板)
来源:互联网 发布:config sae.php 编辑:程序博客网 时间:2024/05/21 06:59
#include<bits/stdc++.h>using namespace std;const int N = 20005;const int INF = 1<<30;int head[N],son[N],cnt,n,ans,size;bool vis[N];struct Edge { int to,next;} edge[2*N];void Init() { cnt = 0; size = INF; memset(vis,0,sizeof(vis)); memset(head,-1,sizeof(head));}void add(int u,int v) { edge[cnt].to = v; edge[cnt].next = head[u]; head[u] = cnt++;}void dfs(int cur) { vis[cur] = 1; son[cur] = 0; int tmp = 0; for(int i=head[cur]; i>=0; i=edge[i].next) { int u = edge[i].to; if(!vis[u]) { dfs(u); son[cur] += son[u] + 1; tmp = max(tmp,son[u] + 1); } } tmp = max(tmp,n-son[cur]-1); if(tmp < size || (tmp == size && cur < ans)) { ans = cur; size = tmp; }}int main() { int T; scanf("%d",&T); while(T--) { Init(); scanf("%d",&n); for(int i=1; i<=n-1; i++) { int u,v; scanf("%d%d",&u,&v); add(u,v); add(v,u); } dfs(1); printf("%d %d\n",ans,size); } return 0;}
阅读全文
0 0
- 树的重心(模板)
- [模板]树的重心
- 会议树的重心模板
- 树的重心 背诵用模板
- poj1655 Balancing Act(树的重心[模板])
- 数的重心模板
- poj3107(树的重心)
- poj1655(树的重心)
- codeforces686D(树的重心)
- 【原创】模板-树的前中后序遍历,树的重心直径
- 树分治基础模板以及树的重心(poj1741 tree)
- POJ 3107 Godfather (树的重心模板题)
- 求树的重心(POJ1655)
- poj1655Balancing Act(树的重心)
- SGU 134 Centroid(树的重心)
- codeforces 686D(树的重心)
- 树的重心(树形DP)
- [POJ1655]Balancing Act(树的重心)
- a标签下拉更改css样式
- Jenkins Day1基础之安装篇
- springboot 用war包部署
- post安装
- 模拟键盘输入adb shell input
- 树的重心(模板)
- JS常用点
- ubuntu修改主机名
- 模板,堆,小根堆
- android 提升app启动速度以及Splash界面设计
- vue2+vuex+vue-router 快速入门(四) vue-router 介绍
- 译文 | 与TensorFlow的第一次接触 第四章:单层神经网络
- 学习资料参考:从深度学习到自然语言处理
- 一键配置ss脚本