只要一次无根树转有根树就可以计算了,一开始每个点都转,发现那就不是动态规划,是枚举了。。。。

#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;
}

POJ 1655 Balancing Act相关推荐

  1. POJ 1655 Balancing Act[树的重心/树形dp]

    Balancing Act 时限:1000ms Description Consider a tree T with N (1 <= N <= 20,000) nodes numbered ...

  2. POJ 1655 Balancing Act (树的重心 + DFS)

    传送门:POJ 1655 题目大意: 求树的重心,如果有多个重心则输出根节点编号最小的一个.树的重心也叫树的质心.找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后 ...

  3. POJ 1655 Balancing Act (树的重心)

    题目链接:http://poj.org/problem?id=1655 题意: 求树的重心(最小序号),以及去掉重心后子树节点最大是多少.(树的重心定义为:找到一个点,其所有的子树中最大的子树节点数最 ...

  4. POJ 1655 Balancing Act (求树的重心)【树形DP】(经典)

    <题目链接> 题目大意: 给你一棵树,任意去除某一个点后,树被分成了几个联通块,则该点的平衡值为所有分成的连通块中,点数最大的那个,问你:该树所有点中,平衡值最小的那个点是什么? 解题分析 ...

  5. POJ - 1655 Balancing Act(树的重心)

    题目链接:点击查看 题目大意:给一个树,删除其中一个点就会形成一个森林,点的平衡度为删除了这个节点后,所形成多个树,其中组成树的节点最多,节点个数就是那个平衡度. 题目分析:求树的重心,模板题: 树的 ...

  6. poj 1655 Balancing Act(求树的重心)

    在一棵树中,去掉一个点,使得剩下的每一颗树的结点数最多的那颗树,结点数最少. 具体解法看注释. /*定义dp[i]为去掉i结点,剩下的树里,结点最多的那颗树的结点数.可分为2类情况.1.由于i结点的儿 ...

  7. poj 1655 Balancing Act 树状dp

    //poj1655树状dp //求一个数的重心 // dfs找到节点v的各个子树的节点数 // 取最大值设为num[v],而v节点以上的子树的节点数 // 为总数-num[v]-1(包括v节点本身)设 ...

  8. Balancing Act(树的重心入门)

    题目链接:http://poj.org/problem?id=1655 Balancing Act Time Limit: 1000MS   Memory Limit: 65536K Total Su ...

  9. POJ 1655:Balancing Act

    Balancing Act 题目链接: http://poj.org/problem?id=1655 题意: 给出一棵树,求树的重心和以重心为根节点节点最多的子树的节点数,如果有多个重心输出编号较小的 ...

最新文章

  1. Android音频底层调试-基于tinyalsa
  2. 在…视域下是什么意思_电影中出现的出品人是什么意思?你需要了解下
  3. 用户空间与内核空间数据交换的方式(2)------procfs
  4. markdown与latex:数学符号远远大于\gg和远远小于书写\ll
  5. 动态编程语言静态编程语言_什么是动态编程?
  6. CEF JS实现获取剪贴板图片的DataURL
  7. Skype for Business Server 2015-01-基础环境-准备
  8. 一起写框架-控制反转(Ioc)概述(二)
  9. PDF控件Aspose.Pdf 12月新版17.12发布 | 附下载
  10. 大地测量学基础(复习)第二部分
  11. Oracle 执行计划详解(预估 + 真实)
  12. linux怎么用jconsole_linux中jconsole
  13. 编程之美学习笔记——数字相关(一)
  14. 真人快打服务器维护多久,《真人快打11》故事模式约8小时 玩家表示比较理想...
  15. Redis安全注意事项
  16. 大学python考试题及答案_中国大学慕课mooc用Python玩转数据期末考试大全答案
  17. html边框波浪,波浪的边框css怎么实现
  18. Java8新特性:等同 final 效果(Effectively Final)
  19. 脱贫攻坚“甜蜜行”基层医生培训班第二期在怀化举办,3市共50名村医参加
  20. 机智云轻网关服务,提升生产管理效率

热门文章

  1. opc ua 用哪种语言编写_什么是OPC UA?
  2. 苹果xsmax怎么开机_苹果11和苹果XSMax怎么选?还以为差别不大,对比后才知道差别大了!...
  3. 40vf什么意思_LED的基本术语VF
  4. 用float/double定义可以输入整数
  5. java 最大的整数_java中最大的整数
  6. (MC维嘉)JAVA 面向对象(3)
  7. Bailian3255 十进制到六进制【进制转换】
  8. 距离度量 —— 切比雪夫距离(Chebyshev Distance)
  9. Python爬虫实战 | (16) 破解简书登录点触验证码
  10. 苹果新款笔记本_微软为Bing桌面体验也带来了语音搜索功能_苹果 新款MacBook Pro 13英寸_笔记本新闻...