1131: [POI2008]Sta

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 783  Solved: 235
[Submit][Status]

Description

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

Input

给出一个数字N,代表有N个点.N<=1000000 下面N-1条边.

Output

输出你所找到的点,如果具有多个解,请输出编号最小的那个.

Sample Input

8
1 4
5 6
4 5
6 7
6 8
2 4
3 4

Sample Output

7

HINT

 

Source

题解:一道萌萌哒树状DP,先是随便弄一个点然后建树,求出各点的深度,然后求和,然后在这个你建立的有根树上各个分支进行DP,以各个点为根时的深度并不难维护——设当前总和为X,你想转移到的子节点下属共计Y个节点(算自己),整个树N个节点,那么这次转移后的总和为X-Y+(N-Y),别的没了。。。对于P党小心202(爆栈!!!)
 {$M 10000000,0,maxlongint}
type
point=^node;
node=record
g:longint;
next:point;
end; var
i,j,k,l,m,n:longint;
a1,a2:int64;
a:array[..] of point;
b,c,d,e:array[..] of int64;
procedure add(x,y:longint);inline;
var p:point;
begin
if x=y then exit;
new(p);
p^.g:=y;
p^.next:=a[x];
a[x]:=p;
end;
procedure built(x:longint);inline;
var p:point;
begin
p:=a[x];
c[x]:=;
while p<>nil do
begin
if d[p^.g]= then
begin
d[p^.g]:=;
b[p^.g]:=b[x]+;
built(p^.g);
c[x]:=c[x]+c[p^.g];
end;
p:=p^.next;
end;
end;
procedure run(x:longint);inline;
var p:point;
begin
p:=a[x];
while p<>nil do
begin
if d[p^.g]= then
begin
d[p^.g]:=;
e[p^.g]:=e[x]+int64(n)-(*c[p^.g]);
run(p^.g);
end;
p:=p^.next;
end;
end; begin
readln(n);
for i:= to n do a[i]:=nil;
for i:= to n- do
begin
readln(j,k);
add(j,k);add(k,j);
end;
fillchar(b,sizeof(b),);
fillchar(c,sizeof(c),);
fillchar(d,sizeof(d),);
d[]:=;
built();
fillchar(d,sizeof(d),);
fillchar(e,sizeof(e),);
d[]:=;
for i:= to n do e[]:=e[]+b[i];
run();
a1:=-;a2:=;
for i:= to n do
begin
if e[i]>a1 then
begin
a1:=e[i];
a2:=i;
end;
end;
writeln(a2);
readln;
end.

1131: [POI2008]Sta的更多相关文章

  1. BZOJ 1131: [POI2008]Sta( dfs )

    对于一棵树, 考虑root的答案向它的孩子转移, 应该是 ans[son] = (ans[root] - size[son]) + (n - size[son]). so , 先 dfs 预处理一下, ...

  2. bzoj 1131 [POI2008]Sta 树形dp 转移根模板题

    [POI2008]Sta Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1889  Solved: 729[Submit][Status][Discu ...

  3. BZOJ 1131: [POI2008]Sta

    Description 一棵树,问以那个节点为根时根的总和最大. Sol DFS+树形DP. 第一遍统计一下 size 和 d. 第二遍转移根,统计答案就行了. Code /************* ...

  4. BZOJ 1131 [POI2008]Sta(树形DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1131 [题目大意] 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度 ...

  5. BZOJ1131 POI2008 Sta 【树形DP】

    BZOJ1131 POI2008 Sta Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=10 ...

  6. Bzoj 1131[POI2008]STA-Station (树形DP)

    Bzoj 1131[POI2008]STA-Station (树形DP) 状态: 设\(f[i]\)为以\(i\)为根的深度之和,然后考虑从他父亲转移. 发现儿子的深度及其自己的深度\(-1\) 其余 ...

  7. [POI2008]Sta(树形dp)

    [POI2008]Sta Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面 ...

  8. [BZOJ1131][POI2008] Sta 树的深度

    Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面N-1条边. Output ...

  9. bzoj千题计划151:bzoj1131: [POI2008]Sta

    http://www.lydsy.com/JudgeOnline/problem.php?id=1131 dp[i]=dp[fa[i]]-son[i]+n-son[i] #include<cst ...

随机推荐

  1. HTML 颜色名

    目前所有浏览器都支持以下颜色名. 141个颜色名称是在HTML和CSS颜色规范定义的(17标准颜色,再加124).下表列出了所有颜色的值,包括十六进制值.  提示: 17标准颜色:黑色,蓝色,水,紫红 ...

  2. ADXL345经验总结,采用SPI和I2C总线操作

    一. ADXL345简介       ADXL345是ADI公司推出的三轴(x,y,z)iMEMS数字加速度计(digital accelerometer),具有在16G下高分辨率(13Bit)测量能 ...

  3. C# MongoDB 查询,分组,聚合,排序,条件,分页

    先下载个C#的驱动.MongoDB提供各种主流与非主流预言的开发驱动. C# Driver 下载地址:这里 CSharp Driver Tutorial:这里 下载文件安装或者解压缩包 如果您是安装, ...

  4. Neutron Router 工作原理 - 每天5分钟玩转 OpenStack(142)

    上一节我们创建了 router 连通了 vlan100 和 vlan101, 今天分析router是如何工作的.首先查看控制节点的网络结构发生了什么变化: br-int 上多了两个 port: 1. ...

  5. ArcGIS制图表达Representation-符号制作

    ArcGIS制图表达Representation-符号制作 by 李远祥 在ArcGIS的符号里面,存在着两种符号体系,一种是传统的标准符号体系,一种是制图表达符号体系.标准符号几乎被绝大部分ArcG ...

  6. 很傻很二很简单的一个问题,json键值为变量如何取值

    js里的json的键值是变量的话,那么传统的做法似乎不管用了. 例如: var json={'a':'123','b':'999'}    json.a得到123,如果a用变量表示呢,有笨法for循环 ...

  7. Activity启动过程分析

    Android的四大组件中除了BroadCastReceiver以外,其他三种组件都必须在AndroidManifest中注册,对于BroadCastReceiver来说,它既可以在AndroidMa ...

  8. Java内部类基本使用

    链接到外部类   创建内部类时,那个类的对象同时拥有封装对象(封装内部类的外部类)的一个链接,所以内部类可以访问外部类的成员.   内部类拥有对外部类所有元素的访问权限.   看如下代码,内部类SSe ...

  9. 一道关于call和this的JS面试题

    一个有情怀的程序员...... 2017年始,希望成为一个更好的自己,想自己所想,爱自己所爱 ----------------------------------------------------- ...

  10. .NET Core在WindowsServer服务器部署及发布

    VS使用WEB DEPLOY发布.NET Core程序   背景是这样的,公司有两台服务器,平时一台备用,另一台做为主生产机器.当有大量补丁或者安装什么东西需要重启的时候,交其中一台直接关掉IIS,然 ...