很显然的递推式ans[q] = ans[p] + n - 2*siz[q];

这么个题你卡我常干嘛,害得我加快读

(谁叫我是vector党呢

#include <bits/stdc++.h>
using namespace std; #define int long long
const int N = 1000006; inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
} int n,siz[N],vis[N],sum[N],ans[N],t1,t2;
vector <int> g[N]; void dfs1(int p) {
vis[p]=1;
siz[p]=1;
for(int i=0;i<g[p].size();i++) {
int q=g[p][i];
if(vis[q]==0) {
dfs1(q);
siz[p]+=siz[q];
sum[p]+=sum[q]+siz[q];
}
}
} void dfs2(int p) {
vis[p]=1;
for(int i=0;i<g[p].size();i++) {
int q=g[p][i];
if(vis[q]==0) {
ans[q] = ans[p] + n - 2*siz[q];
dfs2(q);
}
}
} signed main() {
n=read();
for(int i=1;i<n;i++) {
t1=read();
t2=read();
g[t1].push_back(t2);
g[t2].push_back(t1);
}
dfs1(1);
ans[1]=sum[1];
memset(vis,0,sizeof vis);
dfs2(1);
cout<<max_element(ans+1,ans+n+1)-ans;
}

最新文章

  1. MongoDB数据库未授权访问漏洞及加固
  2. Fluent Nhibernate之旅(五)--利用AutoMapping进行简单开发
  3. Nodejs express中创建ejs项目,解决express下默认创建jade,无法创建ejs问题
  4. python学习-day15:局部变量与全局变量、嵌套函数、递归
  5. Archlinux添加MP3播放器
  6. Step by step configuration of Outgoing Emails from SharePoint to Microsoft Online
  7. 屏蔽EditText长按导致的弹出输入法的对话框
  8. diplay:table-cell和伪元素:after方法让图片居中
  9. Nginx的负载均衡 - 加权轮询 (Weighted Round Robin) 上篇
  10. 运用《深入理解Java虚拟机》书中知识解决实际问题
  11. Groovy闭包详解
  12. AppBoxFuture(一): Hello Future!
  13. 利用Navicate把SQLServer转MYSQL的方法(连数据)
  14. SYSAUX表空间清理
  15. 理解极大似然估计(MLE)
  16. Axis2之异步调用
  17. C++学习(二十四)(C语言部分)之 结构体1
  18. pandas入门——loc与iloc函数
  19. 16款值得一用的iPhone线框图模板 (PSD &amp; Sketch)
  20. [Node.js]25. Level 5. Route params

热门文章

  1. Android中Chronometer计时器的简单使用
  2. DK1.5-JDK11各个新特性
  3. Oracle查询如何才能行转列?-sunziren
  4. java 测试 (junit+ junit 断言 + postman)
  5. MySQL概述及入门(一)
  6. MacBook Pro安装VMware Fusion 11
  7. P4197 Peaks [克鲁斯卡尔重构树 + 主席树][克鲁斯卡尔重构树学习笔记]
  8. malloc分配内存的结构
  9. Tomcat中使用JNDI配置各种数据源
  10. 【Unity|C#】基础篇(1)——基础入门