POJ 1655 Balancing Act【树的重心】

来源:互联网 发布:windows一键重装 编辑:程序博客网 时间:2024/05/16 01:58

这个题也很裸了……不多说。

#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;#define N 20010int s[N], f[N], n, root;vector<int> g[N];void getroot(int now, int fa) {    int u;    s[now] = 1;    f[now] = 0;    for (int i=0; i<g[now].size(); i++)        if ((u=g[now][i]) != fa) {            getroot(u, now);            s[now] += s[u];            f[now] = max(f[now], s[u]);        }    f[now] = max(f[now], n-s[now]);    if (f[now] < f[root]) root = now;}int main() {#ifndef ONLINE_JUDGE    freopen("in.txt", "r", stdin);#endif    int T, a, b;    scanf("%d", &T);    while (T--) {        scanf("%d", &n);        for (int i=1; i<=n; i++) g[i].clear();        for (int i=1; i<n; i++) {            scanf("%d%d", &a, &b);            g[a].push_back(b); g[b].push_back(a);        }        f[0] = n;        getroot(1, root=0);        int cnt = 0;        for (int i=1; i<=n; i++) if (f[i] == f[root]) {            root = i; break;        }        printf("%d %d\n", root, f[root]);    }    return 0;}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 拼音转数字 JAVA拼音转数字 C加密字符串 日本女优无码下载迅雷 定义一个字符串类String,实现判断该字符串是否为回文字符串 字符串类String回文字符串 判断字符串是否为回文字符串 RRC ERAB E-RAB Linux用gred命令单词长度大于等于5 使用重定向命令完成2个文件合并 使用重定向完成文本文件的拷贝 Linux查找时候不现实出错信息 Linux去掉某个文件所有者同组用户的写权限 求方程式ax2 GNAB-011 flash制作课件 有数组$array=array(“a”=>2,”b”=>6,”c”=>5) 有数组$array=array(“a”=>2,”b”=>6,”c”=>5) 有数组$array=array(“a”=>2,”b”=>6,”c”=>5)排序 php对一个数组按某个键值排序 有数组$array=array(“a”=>2,”b”=>6,”c”=>5);用php实现对以上数组进 $array=array(“a”=>2,”b”=>6,”c”=>5);用php实现对以上数组大小排序 $array=array(“a”=>2,”b”=>6,”c”=>5) $array=array(“a”=>2,”b”=>6,”c”=>5)排序 Linux去掉某个文件所有者同组用户的写权限 Linux.sed命令显示某个文件的第五行 Linux输出该文件的奇数行 Linuxsed命令在文件的最后一行插入该文件的的统计信息,包含多少行,多少个单词,多个字符 Linuxcut命令 Linux.cut命令 Linux.cut命令提出a文件中 Linux.cut命令提出a文件中 Linux.ls Linux创建文件 Linux修改文件的时间 Linux创建文件 Linux修改文件的时间 数字图像分析 数字图像分析中科大