博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 1131: [POI2008]Sta
阅读量:6949 次
发布时间:2019-06-27

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

题目大意:给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大

题解:首先以1为根统计一次答案,然后每次O(1)换根统计答案

代码:

#include
using namespace std;int n,cnt,ansid,last[1000005];long long ans,sz[1000005],f[1000005];struct node{ int to,next;}e[2000005];void add(int a,int b){ e[++cnt].to=b; e[cnt].next=last[a]; last[a]=cnt;}void dfs1(int x,int fa){ sz[x]=1; f[x]=1; for (int i=last[x]; i; i=e[i].next){ int V=e[i].to; if (V==fa) continue; dfs1(V,x); sz[x]+=sz[V]; f[x]+=f[V]+sz[V]; }}void dfs2(int x,int fa,long long lastsum){ long long sum=f[x]+lastsum+n-sz[x]; if (sum>ans || sum==ans && x

  

转载于:https://www.cnblogs.com/silenty/p/8721446.html

你可能感兴趣的文章
Nagios显示器MySQL一个错误:NRPE: Unable to read output具体的解决过程
查看>>
精讲母函数
查看>>
读取数据库中timestamp类型去掉毫秒
查看>>
(四)左右ng-app自己主动bootstrap相框
查看>>
九度OJ 1068 球半径和数量 (模拟)
查看>>
了解如何高速嵌入式?
查看>>
HDU4960Another OCD Patient(间隙dp,后座DP)
查看>>
Spark on Yarn遇到的问题及解决思路
查看>>
swift知识点 [1]
查看>>
(转载)北上广深房价只会涨不会降
查看>>
移动存储卡仍然用FAT32文件系统的真相
查看>>
lambda 2
查看>>
windows下配置nginx+php环境
查看>>
Python批量读取人脸图片与数据互相转换
查看>>
android 75 新闻列表页面
查看>>
用数据说话:北京房价数据背后的数据
查看>>
Java系列笔记(4) - JVM监控与调优
查看>>
ITK 4.8.1 Qt 5.4 MinGW 4.9.1 Configuration 配置
查看>>
短网址算法原理
查看>>
kvm 性能调优
查看>>