题目链接

这题跟Balance Act那题差不多,求图的质点。我直接将那题改了一下提交,结果PE了一次,又WA了一次,最后发现是单case,多case的提交为什么WA呢?

View Code

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <vector>
 4 #define N 16000
 5 #define MAX(a,b) ((a)>(b)?(a):(b))
 6 using namespace std;
 7 vector<int> g[N];
 8 int n,p[N],d[N],sum[N],w[N],dmax,ans[N],cnt;
 9 void dfs(int u,int fa)
10 {
11     int i,v;
12     d[u]=(fa==-1?0:d[fa]+1);
13     dmax=MAX(dmax,d[u]);
14     for(i=0; i<g[u].size(); i++)
15     {
16         v=g[u][i];
17         if(v!=fa) dfs(v,p[v]=u);
18     }
19 }
20 void dp()
21 {
22     int i,j;
23     memset(w,0,sizeof(w));
24     for(i=0; i<n; i++)  sum[i]=1;
25     for(i=dmax; i>=0; i--)
26     {
27         for(j=0; j<n; j++)
28         {
29             if(d[j]!=i) continue;
30             w[j]=MAX(w[j],n-sum[j]);
31             if(i>0) w[p[j]]=MAX(w[p[j]],sum[j]),sum[p[j]]+=sum[j];
32         }
33     }
34 }
35 int main()
36 {
37     int i,t,u,v,min;
38     scanf("%d",&n);
39     for(i=0; i<n; i++)  g[i].clear();
40     for(i=0; i<n-1; i++)
41     {
42         scanf("%d%d",&u,&v);
43         u--,v--;
44         g[u].push_back(v);
45         g[v].push_back(u);
46     }
47     dmax=0;
48     dfs(0,-1);
49     dp();
50     min=0x7fffffff;
51     cnt=0;
52     for(i=0; i<n; i++)
53     {
54         if(w[i]<min)  cnt=0,min=w[i],ans[cnt++]=i;
55         else if(w[i]==min)  ans[cnt++]=i;
56     }
57     printf("%d %d\n",min,cnt);
58     for(i=0; i<cnt-1; i++)  printf("%d ",ans[i]+1);
59     printf("%d",ans[cnt-1]+1);
60     return 0;
61 }

转载于:https://www.cnblogs.com/algorithms/archive/2012/05/02/2479673.html

HDOJ树形DP专题之Centroid相关推荐

  1. layui树形父子不关联_DP专题7 | 没有上司的舞会 洛谷1352(树形DP)

    高能预警:这是一篇超过5分钟的学习文章,暑假了可以多学会 本篇继续咱们的DP专题,树形DP入门.动态规划每一个类型的DP都是深坑,期望童鞋们自己在这个系列的基础上多花时间进行拓展,学习愉快~ 在讨论树 ...

  2. 树形DP --算法竞赛专题解析(17)

    本系列文章将于2021年整理出版,书名<算法竞赛专题解析>. 前驱教材:<算法竞赛入门到进阶> 清华大学出版社 网购:京东 当当      想要一本作者签名书?点我 如有建议, ...

  3. 九大背包问题专题--有依赖的背包问题(树形Dp结合)

    9.有依赖的背包问题 问题: 有N件物品和一个容量是V的背包. 物品之间具有依赖关系,且依赖关系组成一棵树的形状.如果选择一个物品,则必须选择它的父节点. 如图所示 如果选择物品5,则必须选择物品1和 ...

  4. 树形$dp$学习笔记

    今天学习了树形\(dp\),一开始浏览各大\(blog\),发现都\(TM\)是题,连个入门的\(blog\)都没有,体验极差.所以我立志要写一篇可以让初学树形\(dp\)的童鞋快速入门. 树形\(d ...

  5. 树形DP(HDOJ1011 2196 4003 5148 POJ2342)

    自己整理了个比较水的模版...一般简单的树形DP题基本可以解.... 用HDOJ 4003举例 题目大意:给一棵树,以及每人通过此边的花费,求用给定人数遍历树的最小花费 输入 点数,根位置,人数 始边 ...

  6. DP专题考试总结(4)

    最近努力学(tui)习(fei)了DP专题,然后考试又挂了,然后就没有然后了. 对此,我只想说-- 吾每念,常痛于骨髓,顾计不知所出耳! 广场铺砖问题 期望得分:40 实际得分:10 Descript ...

  7. [51nod1299]监狱逃离 树形DP || 20w个点的网络流最小割ORZ

    监狱有N条道路连接N + 1个交点,编号0至N,整个监狱被这些道路连在一起(任何2点之间都有道路),人们通过道路在交点之间走来走去.其中的一些交点只有一条路连接,这些点是监狱的出口.在各个交点中有M个 ...

  8. UVa在线比赛单题汇总-----DP专题

    动态规划基础 例题 LA 3882 UVa 3882 - And Then There Was One 递推------------无力orz UVa 10635 10635 - Prince and ...

  9. BNUOJ 52305 Around the World 树形dp

    题目链接: https://www.bnuoj.com/v3/problem_show.php?pid=52305 Around the World Time Limit: 20000msMemory ...

最新文章

  1. 将表里的数据批量生成INSERT语句的存储过程 增强版
  2. 【MATLAB】符号数学计算(四):符号表达式操作
  3. elk7.2+filebeat
  4. Oracle删库跑路
  5. 五、Elasticsearch中的API的简单使用(Python版本)
  6. Android---手动创建线程与GUI线程同步(三)
  7. 六、PHP框架Laravel学习笔记——响应设置和重定向
  8. 防范网络*** 应用层防护是重点
  9. 你要知道的内存条知识
  10. Android SQlite基本用法
  11. 使用IntelliJ IDEA 配置Maven(入门)
  12. Python 三种读文件方法read(), readline(), readlines()及去掉换行符\n
  13. JavaScript颜色加深或减淡
  14. VS2015 还是VS2017 好用_强烈推荐:2020年12款Visual Studio 好用的工具
  15. 史上最简单的,最直接的sass的安装教程
  16. 实用至上,推荐五款非常实用的软件
  17. android与ios系统优缺点,安卓系统与苹果iOS系统的差别,谁更好用?为什么系统会卡顿?...
  18. 【LLYD】That 70s show: why the disco decade is back in fashion
  19. 手势识别系统的发展前景
  20. 原来js可以这样用。类似51la.cnzz统计的js接口

热门文章

  1. 福建省计算机初级职称,2019福建助理工程师职称评定条件材料及审核管理制度...
  2. 计算机原理期中考试,计算机组成原理期中考试试题
  3. 2019蓝桥杯Java决赛题答案_2019第十届蓝桥杯JavaB组省赛真题详解
  4. 最长上升子序列 java_最长上升子序列 O(nlogn)解法 (java)
  5. leetcode31. 下一个排列
  6. leecode5 最长回文子串
  7. Redis:21---客户端相关配置篇
  8. 在CodeBlocks下配置GoogleTest单元测试框架
  9. 《Java8实战》笔记(12):新的日期和时间API
  10. 微博安全是一个系统问题包括服务器安全,应用安全开发注意事项