URAL 1056(树形DP)
1056. Computer Net
Memory limit: 64 MB
Background
N − 1 (
N is a total number of computers). For instance, protocol 1, 1, 2, 2 corresponds to the following net:
|
Problem
Input
Output
Sample
input | output |
---|---|
|
|
- #include<stdio.h>
- #include<string.h>
- const int N=10001;
- int dp[N][2],vis[N],head[N],num,ans;
- struct edge
- {
- int st,ed,next;
- }e[N*4];
- void addedge(int x,int y)
- {
- e[num].st=x;e[num].ed=y;e[num].next=head[x];head[x]=num++;
- e[num].st=y;e[num].ed=x;e[num].next=head[y];head[y]=num++;
- }
- void dfs1(int u)
- {
- vis[u]=1;
- int i,v;
- for(i=head[u];i!=-1;i=e[i].next)
- {
- v=e[i].ed;
- if(vis[v]==1)continue;
- dfs1(v);
- if(dp[v][1]+1>dp[u][1])
- {
- dp[u][0]=dp[u][1];
- dp[u][1]=dp[v][1]+1;
- }
- else if(dp[v][1]+1>dp[u][0])
- dp[u][0]=dp[v][1]+1;
- }
- }
- void dfs2(int u)
- {
- vis[u]=1;
- int i,v,temp;
- for(i=head[u];i!=-1;i=e[i].next)
- {
- v=e[i].ed;
- if(vis[v]==1)continue;
- if(dp[u][1]==dp[v][1]+1)//在父节点的最大距离边上
- temp=dp[u][0]+1;
- else temp=dp[u][1]+1;
- if(temp>dp[v][1]) //更新v节点的最大,次大边
- {
- dp[v][0]=dp[v][1];
- dp[v][1]=temp;
- }
- else if(temp>dp[v][0])
- {
- dp[v][0]=temp;
- }
- if(ans>dp[v][1])
- ans=dp[v][1];
- dfs2(v);
- }
- }
- int main()
- {
- int n,i,x;
- while(scanf("%d",&n)!=-1)
- {
- memset(head,-1,sizeof(head));
- memset(dp,0,sizeof(dp));
- num=0;
- for(i=2;i<=n;i++)
- {
- scanf("%d",&x);
- addedge(i,x);
- }
- ans=99999999;
- memset(vis,0,sizeof(vis));
- dfs1(1);
- memset(vis,0,sizeof(vis));
- dfs2(1);
- if(ans>dp[1][1])ans=dp[1][1];
- for(i=1;i<=n;i++)
- {
- if(dp[i][1]==ans)
- printf("%d ",i);
- }
- printf("\n");
- }
- return 0;
- }
URAL 1056(树形DP)的更多相关文章
- ural 1018(树形dp)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 思路:典型的树形dp,处理的时候类似于分组背包,dp[i] ...
- Ural 1018 (树形DP+背包+优化)
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 题目大意:树枝上间连接着一坨坨苹果(不要在意'坨'),给 ...
- 树形DP URAL 1039 Anniversary Party
题目传送门 /* 题意:上司在,员工不在,反之不一定.每一个人有一个权值,问权值和最大多少. 树形DP:把上司和员工的关系看成根节点和子节点的关系,两者有状态转移方程: dp[rt][0] += ma ...
- ural 1018 Binary Apple Tree(树形dp | 经典)
本文出自 http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...
- URAL 1018 (金典树形DP)
连接:1018. Binary Apple Tree Time limit: 1.0 second Memory limit: 64 MB Let's imagine how apple tree l ...
- 树形DP
切题ing!!!!! HDU 2196 Anniversary party 经典树形DP,以前写的太搓了,终于学会简单写法了.... #include <iostream> #inclu ...
- poj 2342 Anniversary party 简单树形dp
Anniversary party Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3862 Accepted: 2171 ...
- POJ 2342 (树形DP)
Anniversary party Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3863 Accepted: 2172 ...
- hdu1520 第一道树形DP,激动哇咔咔!
A - 树形dp Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Sta ...
随机推荐
- 京东金融集团BD部门招聘 BD经理
新标签页http://74.55.154.136/ 互联网招聘_cnBeta.COM 北京 / 全职 / 20k-30k / 经验3-5年 / 本科及以上 / 1天前发布 职位诱惑 : 五险一金 职位 ...
- Xcode4 布置Git环境Your working copy is out of date. Try pulling from the remote to get the latest change
今天布置环境的时候发现一个问题:Your working copy is out of date. Try pulling from the remote to get the latest chan ...
- javascript操作元素的css样式
我们经常要使用Javascript来改变页面元素的样式.当中一种办法是改变页面元素的CSS类(Class),这在传统的Javascript里,我们一般是通过处理HTML Dom的classname特性 ...
- 安卓面试精华(Activity部分)
过几天小弟要去面试了,当然免不了要好好复习下功课,其实很多东西也不是特别清楚,今天都当作一个回顾和巩固,希望我的这篇文章能对即将去找工作的同学有所帮助. 1. Q:什么是activity? 虽然这个问 ...
- IOS7上呈现IOS6的水滴刷新效果
IOS7上呈现IOS6的水滴刷新效果 到了IOS7 发现自带的刷新 不再是 IOS6自带的水滴效果了 你是否怀念那IOS6的效果呢? 哈哈,于是收集各方资料,整理编写一个属于自己的水滴刷新效果 ...
- Python中使用Flask、MongoDB搭建简易图片服务器
主要介绍了Python中使用Flask.MongoDB搭建简易图片服务器,本文是一个详细完整的教程,需要的朋友可以参考下 1.前期准备 通过 pip 或 easy_install 安装了 pymong ...
- 无限层级且乱序的树形结构数据的整理,利用HashMap降低遍历次数
我们在展示一个机构树的时候,经常会遇到这种一个问题,查询数据的时候,是从下往上查的,但展示数据的时候,又要从下往上展示. 这时候就要把查询到的数据进行整理从而得到我们想要的结构. 举个样例. ID P ...
- 【模式识别】Boosting
Boosting简单介绍 分类中通常使用将多个弱分类器组合成强分类器进行分类的方法,统称为集成分类方法(Ensemble Method).比較简单的如在Boosting之前出现Bagging的方法,首 ...
- webform中几个常用的控件
一,简单控件 1,Lable——标签:在网页中呈现出来的时候会变成span标签 属性:Text——标签上的文字 BackColor,ForeColor——背景色,前景色 Font——字体 Bold- ...
- 实现长按删除QListWidget的Item
原地址:http://blog.sina.com.cn/s/blog_5c70dfc80100r99u.html 要想长按删除QListWidget的Item,必须重写鼠标事件,所以需要继承QList ...