HDU 2196.Computer 树形dp 树的直径
Computer
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 31049 Accepted Submission(s): 3929
Hint: the example input is corresponding to this graph. And from the graph, you can see that the computer 4 is farthest one from 1, so S1 = 3. Computer 4 and 5 are the farthest ones from 2, so S2 = 2. Computer 5 is the farthest one from 3, so S3 = 3. we also get S4 = 4, S5 = 4.
- #include<iostream>
- #include<cstdio>
- #include<cmath>
- #include<cstring>
- #include<algorithm>
- #include<queue>
- #include<stack>
- #include<map>
- #include<stack>
- #include<set>
- #include<bitset>
- using namespace std;
- #define PI acos(-1.0)
- #define eps 1e-8
- typedef long long ll;
- typedef pair<int,int > P;
- const int N=1e5+,M=1e5+;
- const int inf=0x3f3f3f3f;
- const ll INF=1e18+,mod=1e9+;
- struct edge
- {
- int from,to;
- ll w;
- int next;
- };
- edge es[M];
- int cnt,head[N];
- ll dp[N][];
- void init()
- {
- cnt=;
- memset(head,-,sizeof(head));
- }
- void addedge(int u,int v,ll w)
- {
- cnt++;
- es[cnt].from=u,es[cnt].to=v;
- es[cnt].w=w;
- es[cnt].next=head[u];
- head[u]=cnt;
- }
- void dfs1(int u,int fa)
- {
- for(int i=head[u]; i!=-; i=es[i].next)
- {
- edge e=es[i];
- if(e.to==fa) continue;
- dfs1(e.to,u);
- ll d=dp[e.to][]+e.w;
- if(d>dp[u][]) swap(d,dp[u][]);
- if(d>dp[u][]) swap(d,dp[u][]);
- }
- }
- void dfs2(int u,int fa)
- {
- for(int i=head[u]; i!=-; i=es[i].next)
- {
- edge e=es[i];
- if(e.to==fa) continue;
- if(dp[u][]==dp[e.to][]+e.w)
- dp[e.to][]=max(dp[u][],dp[u][])+e.w;
- else
- dp[e.to][]=max(dp[u][],dp[u][])+e.w;
- dfs2(e.to,u);
- }
- }
- int main()
- {
- int n;
- while(~scanf("%d",&n))
- {
- init();
- for(int i=,j; i<=n; i++)
- {
- ll w;
- scanf("%d%lld",&j,&w);
- addedge(i,j,w);
- addedge(j,i,w);
- }
- memset(dp,,sizeof(dp));
- dfs1(,);
- dfs2(,);
- for(int i=; i<=n; i++)
- printf("%d\n",max(dp[i][],dp[i][]));
- }
- return ;
- }
树形dp
HDU 2196.Computer 树形dp 树的直径的更多相关文章
- HDU 2196 Computer 树形DP经典题
链接:http://acm.hdu.edu.cn/showproblem.php? pid=2196 题意:每一个电脑都用线连接到了还有一台电脑,连接用的线有一定的长度,最后把全部电脑连成了一棵树,问 ...
- computer(树形dp || 树的直径)
Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- HDU 2196 Computer 树形DP 经典题
给出一棵树,边有权值,求出离每一个节点最远的点的距离 树形DP,经典题 本来这道题是无根树,可以随意选择root, 但是根据输入数据的方式,选择root=1明显可以方便很多. 我们先把边权转化为点权, ...
- hdu-2169 Computer(树形dp+树的直径)
题目链接: Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 2196 Computer(树形DP)
Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- hdu 2196 Computer 树形dp模板题
Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- hdu 2196 Computer(树形DP经典)
Computer Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- Computer(HDU2196+树形dp+树的直径)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196 题目: 题意:有n台电脑,每台电脑连接其他电脑,第i行(包括第一行的n)连接u,长度为w,问你每 ...
- hdu 4607 树形dp 树的直径
题目大意:给你n个点,n-1条边,将图连成一棵生成树,问你从任意点为起点,走k(k<=n)个点,至少需要走多少距离(每条边的距离是1): 思路:树形dp求树的直径r: a:若k<=r+1 ...
随机推荐
- charles抓不到APP内的某些接口-解决部分汇总
首先,让我哭会,我竟然自己解决了问题.网上查的解决办法都试过了就是不管用,也问过前辈,就是没招. 果然,自立自强,勇者不息. Top1 问题:charles抓不到接口? 现象:web端的网络请求OK, ...
- leetCode53. 最大子序和
示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6. 进阶: /** * @param {number[]} nu ...
- html弹出div
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 云栖大会day1 下午
下午参与的是创新创业专场 会议议程是 创新创业专场-2018阿里云创新中心年度盛典 13:30-14:10 阿里双创新征程 李中雨 阿里云创业孵化事业部总经理 14:10-14:40 人货场的渗透与重 ...
- inpu控件接受pipe的处理结果
input控件绑定的变量,要接受用户的输入值,一般只要使用 [(ngModel)] 就可以. 但是,pipe处理结果如何反映到变量里去呢?不知道吧?嘿嘿 这样就可以了 : <input ...
- celery (二) task
Task task 具有如下特点: task 可以在任何可调用的地方创建.它有双重角色: 定义了当task被调用时,会发送一个消息. 定义了当worker收到消息时会运行消息对应的函数 每个task都 ...
- 给C#Control组件统一增加加属性
http://www.cnblogs.com/SharkXu/archive/2006/08/24/EnterGoto.html
- layui xtree 实现一级节点单选 ,子节点复选
在外部定义变量和方法 //定义变量 接收顶级节点的值 var topValue; // 获取顶级节点值的方法 function getParent(value) { var val = project ...
- maven的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- mybatis入门知识
概述 MyBatis 是一个优秀的基于 Java 的持久层框架,它内部封装了 JDBC,使开发者只需关注 SQL 语句本身,而不用再花费精力去处理诸如注册驱动.创建 Connection.配置 Sta ...