BZOJ 1131: [POI2008]Sta
来源:互联网 发布:苹果看txt软件 编辑:程序博客网 时间:2024/06/05 08:47
树形dp,水
(要是难的话我就做不来了,折腾了好久还是换了一种转移方式)
#include<cstdio>#include<algorithm>#include<vector>#define N 1001005#define LL long longusing namespace std; int read(){ int a=0,f=1;char c=getchar(); while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){a=a*10+c-'0';c=getchar();} return a*f;} struct edge{int to,next;}e[N*2];int n,id,cnt=0,sz[N],head[N];LL totd[N],ans; void work(int x,int fa){ totd[x]=sz[x]=1; for(int i=head[x];i;i=e[i].next) { int y=e[i].to; if(y==fa) continue;work(y,x);sz[x]+=sz[y];totd[x]+=totd[y]+sz[y]; }}void solve(int x,int fa){ for(int i=head[x];i;i=e[i].next) { int y=e[i].to; if(y==fa) continue; totd[y]=totd[x]+n-2*sz[y]; solve(y,x); }}void add(int x,int y){e[++cnt].next=head[x],e[cnt].to=y;head[x]=cnt;}int main(){ n=read(); for(int i=1,x,y;i<n;++i) { x=read(),y=read(); add(x,y);add(y,x); } work(1,0); solve(1,0); ans=totd[1];id=1; for(int i=1;i<=n;++i)if(totd[i]>ans) ans=totd[i],id=i; printf("%d\n",id);return 0;}
阅读全文
0 0
- bzoj 1131: [POI2008]Sta
- BZOJ 1131 [POI2008]Sta
- bzoj 1131 [POI2008]Sta
- BZOJ 1131: [POI2008]Sta
- 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
- 【BZOJ】1131 [POI2008]Sta 递推
- bzoj 1131: [POI2008]Sta(DPS)
- 洛谷 P3478 [POI2008]STA-Station(bzoj P1131 [POI2008]STA-Station)
- luogu 3478 bzoj 1131 poi2008 sta 树形dp
- 1131: [POI2008]Sta
- 【BZOJ】【P1131】【POI2008】【Sta】【题解】【dfs+bfs】
- [POI2008]Sta
- bzoj-1131 Sta
- linux通配符、元字符、转义字符
- 网络通信模式&基站及其基本应用
- 微服务实战(二):使用API Gateway
- Nosql简介
- PL/SQL 查询的字段显示不全
- BZOJ 1131: [POI2008]Sta
- 记录jni中利用c和c++把java的string 转成 c 的string
- 合并排序数组 II
- Jquery事件绑定方法
- sort 命令[以tab键为分隔符]
- 搭建appium环境(一)
- 华为机试: 按字节截取字符串、超长正整数相加
- Android实现RecyclerView的下拉刷新和上拉加载更多
- Mybatis分页插件PageHelper的使用