BZOJ 1131 POI2008 Sta 树形DP
来源:互联网 发布:南京软件大学 编辑:程序博客网 时间:2024/06/05 07:07
题目大意:给定一棵树,求一个点,使以这个点为根时深度之和最大,在此基础上要求编号最小
裸TreeDP。。。
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 1001001using namespace std;struct abcd{int to,next;}table[M<<1];int head[M],tot;int n,ans,size[M];long long sum[M],max_ans=0;void Add(int x,int y){table[++tot].to=y;table[tot].next=head[x];head[x]=tot;}void DFS(int x,int from){int i;sum[x]=size[x]=1;for(i=head[x];i;i=table[i].next)if(table[i].to!=from){DFS(table[i].to,x);size[x]+=size[table[i].to];sum[x]+=sum[table[i].to]+size[table[i].to];}}void Tree_DP(int x,int from){int i;for(i=head[x];i;i=table[i].next)if(table[i].to!=from){sum[table[i].to]=sum[x]+size[1]-2*size[table[i].to];Tree_DP(table[i].to,x);}}int main(){int i,x,y;cin>>n;for(i=1;i<n;i++){scanf("%d%d",&x,&y);Add(x,y);Add(y,x);}DFS(1,0);Tree_DP(1,0);for(i=1;i<=n;i++)if(sum[i]>max_ans)max_ans=sum[i],ans=i;cout<<ans<<endl;return 0;}
0 0
- BZOJ 1131 POI2008 Sta 树形DP
- BZOJ 1131 POI2008 Sta 树形DP
- BZOJ 1131 [POI2008]Sta 树形DP
- bzoj 1131: [POI2008]Sta(树形DP)
- BZOJ 1131: [POI2008]Sta 树形DP
- bzoj 1131: [POI2008]Sta 树形dp
- luogu 3478 bzoj 1131 poi2008 sta 树形dp
- bzoj1131: [POI2008]Sta 树形dp
- bzoj1131 [POI2008]Sta 树形DP
- bzoj 1131: [POI2008]Sta
- BZOJ 1131 [POI2008]Sta
- bzoj 1131 [POI2008]Sta
- BZOJ 1131: [POI2008]Sta
- [BZOJ1131][POI2008]Sta(树形dp+维护)
- [BZOJ1131][POI2008]Sta(树形dp+维护)
- 【BZOJ】1131 [POI2008]Sta 递推
- bzoj 1131: [POI2008]Sta(DPS)
- BZOJ 1123 POI2008 BLO Tarjan+树形DP
- App Store最新审核标准(2015.3)公布
- 如何解决非正常关闭vi编辑器时生成.swp文件问题
- 第三周项目5(1)-数组做数据成员
- 多文件组织
- 时间
- BZOJ 1131 POI2008 Sta 树形DP
- 使用VisualVM分析MyEclipse
- 第三周 项目三 程序的多文件组织
- 终结 Session Unset和session_destroy
- 批处理for命令详解
- css 按钮设置为自定义背景图片
- ios UILabel设置行间距
- 凸壳算法
- 第三周项目三程序的多文件组织