pku 2378 Tree Cutting
2011-07-23 11:08
225 查看
和上一篇博客介绍的那题的一样的,简单的树形DP;
题意:给你一棵树,然后让你找到这样的一些点,这个点去掉后,分割出来的子树的个数都小于等于 N/2
代码:
View Code
题意:给你一棵树,然后让你找到这样的一些点,这个点去掉后,分割出来的子树的个数都小于等于 N/2
代码:
View Code
# include<stdio.h> # include<string.h> # define N 10005 struct node{ int from,to,next; }edge[2*N]; int head ,tol,visit ,val ,n; void add(int a,int b) { edge[tol].from=a;edge[tol].to=b;edge[tol].next=head[a];head[a]=tol++; } int max(int a,int b) { return a>b?a:b; } int dfs(int root,int father) { int j,u,Max,temp,sum; sum=1; Max=-1; for(j=head[root];j!=-1;j=edge[j].next) { u=edge[j].to; if(u!=father) { temp=dfs(u,root); sum+=temp; Max=max(Max,temp); } } val[root]=max(Max,n-sum); return sum; } int main() { int i,a,b; scanf("%d",&n); memset(head,-1,sizeof(head)); tol=0; for(i=1;i<n;i++) { scanf("%d%d",&a,&b); add(a,b); add(b,a); } dfs(1,0); for(i=1;i<=n;i++) { if(val[i]<=n/2) printf("%d\n",i); } return 0; }
相关文章推荐
- pku2378 Tree Cutting
- PKU/POJ 2378 Tree Cutting
- POJ 2378 Tree Cutting(树形DP)
- poj 2378 Tree Cutting
- Tree Cutting - POJ 2378 树形dp
- POJ 2378 Tree Cutting
- POJ 2378 Tree Cutting (简单树形DP、删点)
- POJ 2378 Tree Cutting
- (简单) 树形dp POJ 2378 Tree Cutting
- poj 2378 Tree Cutting
- poj 2378 Tree Cutting (树形dp)
- POJ2378_Tree Cutting_树状DP
- 【POJ】2378 - Tree Cutting 树形dp
- POJ-2378-Tree cutting
- POJ 2378 Tree Cutting
- poj 2378 Tree Cutting 树形dp
- poj 2378 Tree Cutting
- POJ 2378 Tree Cutting (DFS)
- POJ 2378 Tree Cutting【树形DP】
- POJ 2378 Tree Cutting 子树统计