和poj3107,poj1655一样的方法

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstdlib>
  4. #include<cstring>
  5. #include<cmath>
  6. #include<map>
  7. #include<set>
  8. #include<vector>
  9. #include<algorithm>
  10. #include<stack>
  11. #include<queue>
  12. using namespace std;
  13. #define INF 100000000
  14. #define eps 1e-8
  15. #define pii pair<int,int>
  16. #define LL long long int
  17. struct node
  18. {
  19. int v,next;
  20. }e[];
  21. int n,a,b,head[];
  22. int num[],bal[],cnt=;
  23. void add(int aa,int bb);
  24. int dfs1(int x,int fa);
  25. void dfs2(int x,int fa);
  26. int main()
  27. {
  28. //freopen("in1.txt","r",stdin);
  29. //freopen("out.txt","w",stdout);
  30. scanf("%d",&n);
  31. memset(head,-,sizeof(int)*(n+));
  32. for(int i=;i<=n;i++) num[i]=;
  33. for(int i=;i<=n-;i++)
  34. {
  35. scanf("%d%d",&a,&b);
  36. add(a,b);
  37. add(b,a);
  38. }
  39. dfs1(,-);
  40. dfs2(,-);
  41. for(int i=;i<=n;i++)
  42. {
  43. if(bal[i]<=n/)
  44. {
  45. printf("%d\n",i);
  46. }
  47. }
  48. //fclose(stdin);
  49. //fclose(stdout);
  50. return ;
  51. }
  52. void add(int aa,int bb)
  53. {
  54. e[cnt].v=bb;
  55. e[cnt].next=head[aa];
  56. head[aa]=cnt++;
  57. }
  58. int dfs1(int x,int fa)
  59. {
  60. for(int i=head[x];i!=-;i=e[i].next)
  61. {
  62. if(e[i].v==fa)
  63. continue;
  64. else
  65. {
  66. num[x]+=dfs1(e[i].v,x);
  67. }
  68. }
  69. return num[x];
  70. }
  71. void dfs2(int x,int fa)
  72. {
  73. for(int i=head[x];i!=-;i=e[i].next)
  74. {
  75. if(e[i].v==fa)
  76. {
  77. bal[x]=max(bal[x],n-num[x]);
  78. }
  79. else
  80. {
  81. bal[x]=max(bal[x],num[e[i].v]);
  82. dfs2(e[i].v,x);
  83. }
  84. }
  85. }

poj2378(dfs,树形dp)的更多相关文章

  1. 杭电OJ——1011 Starship Troopers(dfs + 树形dp)

    Starship Troopers Problem Description You, the leader of Starship Troopers, are sent to destroy a ba ...

  2. POJ 1849 - Two - [DFS][树形DP]

    Time Limit: 1000MS Memory Limit: 30000K Description The city consists of intersections and streets t ...

  3. 图论--树的直径--DFS+树形DP模板

    #include <iostream> #include <cstring> using namespace std; //maxv:源点能到的最远点,maxdis:最远点对应 ...

  4. Codeforces 765E. Tree Folding [dfs][树形dp]

    题解:先从节点1开始dfs.对于每一个节点,用一个set记录:以该点为根的子树的深度. a) 如果此节点的某个子节点打出了GG,则此节点直接打出GG. b) 若set的元素个数<=1,那么,以该 ...

  5. poj1655(dfs,树形dp,树的重心)

    这是找树的重心的经典题目. 树的重心有下面几条常见性质: 定义1:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心.定义2:以这个点为根,那么所有的子树(不算整个树自身)的大 ...

  6. poj1655(dfs,树形dp,树的重心)(点分治基础)

    题意:就是裸的求树的重心. #include<cstring> #include<algorithm> #include<cmath> #include<cs ...

  7. CF979C Kuro and Walking Route(简单的dfs/树形dp)

    题意:给出一个$n$个点,$n-1$条边的无向连通图,给出两个点$x,y$,经过$x$后的路径上就不能经过$y$,问可以走的路径$(u,v)$有多少条,($(u,v)$和$(v,u)$考虑为两条不同的 ...

  8. 【bzoj2435】[NOI2011]道路修建 树形dp

    题目描述 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿意修建恰好 n – 1条双向道路. 每条道路的修 ...

  9. HDU5834Magic boy Bi Luo with his excited tree 树形dp

    分析:典型的两遍dfs树形dp,先统计到子树的,再统计从祖先来的,dp[i][0]代表从从子树回来的最大值,dp[i][1]代表不回来,id[i]记录从i开始到哪不回来 吐槽:赛场上想到了状态,但是不 ...

随机推荐

  1. Java并发(6):concurrent包中的Copy-On-Write容器

    一. concurrent包介绍 在JDK1.5之前,Java中要进行业务并发时,通常需要有程序员独立完成代码实现,而当针对高质量Java多线程并发程序设计时,为防止死蹦等现象的出现,比如使用java ...

  2. HDU 1501 Zipper 【DFS+剪枝】

    HDU 1501 Zipper [DFS+剪枝] Problem Description Given three strings, you are to determine whether the t ...

  3. 大数据生态,哪些框架需要全部启动,哪些只启动master,仅为汇总

    主从,只需要在master节点启动 hadoop hbase 单机启动 hive 其他,需要启动每个节点 zookeeper kafka flume presto

  4. sqlservr.exe占用大量内存

    SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉.所以一般我们在看sta ...

  5. 使用redis做mysql缓存

    应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql. 同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增 ...

  6. HDU 5704

    题意:n个人参加一个游戏,每个人选择0-100范围的数.m为选择的所有数的平均数*2/3,选择的数<=m且距离m最近的人获胜,若同时有多人满足条件则随机抽取胜者.如果一个人选的数,比m小,且相距 ...

  7. Execute Disable Bit

    “Execute Disable Bit”是Intel在新一代处理器中引入的一项功能,开启该功能后,可以防止病毒.蠕虫.木马等程序利用溢出.无限扩大等手法去破坏系统内存并取得系统的控制权.其工作原理是 ...

  8. LeetCode——Reverse String

    LeetCode--Reverse String Question Write a function that takes a string as input and returns the stri ...

  9. “玲珑杯”ACM比赛 Round #13 B -- 我也不是B(二分排序)

    题意:开始有一个空序列s,一个变量c=0,接着从左往右依次将数组a中的数字放入s的尾部,每放一个数字就检测一次混乱度K,当混乱度k大于M时就清空序列并让c=c+1 K = Bi * Vi(1<= ...

  10. 摘录:Jetty 的工作原理以及与 Tomcat 的比较

    引子:Jetty 应该是目前最活跃也是很有前景的一个 Servlet 引擎.本文将介绍 Jetty 基本架构与基本的工作原理:您将了解到 Jetty 的基本体系结构:Jetty 的启动过程:Jetty ...