博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解题:POI 2008 Station
阅读量:4677 次
发布时间:2019-06-09

本文共 1090 字,大约阅读时间需要 3 分钟。

水水的换根裸题,不过以前还真没做过换根的题

换根的思想就是在DFS中利用树的信息更新出当前点为根时的信息,具体来说一般是考虑子树外和子树内两部分

每个点的答案$ans$就是$ans[fa]+n-2*siz[nde]$

1 #include
2 #include
3 #include
4 using namespace std; 5 const int N=1000005; 6 int noww[2*N],goal[2*N]; 7 int p[N],dep[N],siz[N]; 8 int n,t1,t2,cnt,ans; 9 long long sum,maxd;10 void link(int f,int t)11 {12 noww[++cnt]=p[f];13 goal[cnt]=t,p[f]=cnt;14 }15 void DFS(int nde,int fth,int dth)16 {17 dep[nde]=dth,siz[nde]=1;18 for(int i=p[nde];i;i=noww[i])19 if(goal[i]!=fth) 20 {21 DFS(goal[i],nde,dth+1);22 siz[nde]+=siz[goal[i]];23 }24 }25 void ANS(int nde,int fth,long long las)26 {27 if(las>=maxd) ans=nde,maxd=las;28 for(int i=p[nde];i;i=noww[i])29 if(goal[i]!=fth) 30 {31 las=las+n-2*siz[goal[i]];32 ANS(goal[i],nde,las);33 las=las-n+2*siz[goal[i]];34 }35 }36 int main()37 {38 scanf("%d",&n);39 for(int i=1;i
View Code

 

转载于:https://www.cnblogs.com/ydnhaha/p/9755791.html

你可能感兴趣的文章
公司生存之道
查看>>
Java利用反射来获取一个方法的 范型化参数 Vector<Integer>的类型
查看>>
htmlparser使用举例
查看>>
[Leetcode]3Sum
查看>>
十四、web基础,用html元素制作web页面
查看>>
简明python_Day8_软件开发流程
查看>>
vhdl verilog
查看>>
LeetCode 6 ZigZag Conversion 模拟 难度:0
查看>>
bootstrap入门-4.排版及其他固定样式
查看>>
WEB安全之解决CC攻击
查看>>
Html5 01(data-attributes、form-types【只在移动端使用】、svg)
查看>>
python之random模块
查看>>
visor 发布
查看>>
nginx 隐藏版本信息
查看>>
百事世界杯之旅
查看>>
Launch VINS-Mono with Realsense D435i in RTAB-Map
查看>>
以一点为中心旋转动画实现,摇摆动画
查看>>
js去除范围内所有标签并显示指定字符串
查看>>
结对项目进度2
查看>>
git + git flow 的简单介绍
查看>>