首页 > TAG信息列表 > HDU2196
hdu2196 Computer
【题意】 给定一棵树,问对于每个点u,到树上另一个点v的最远距离 【分析】 对于每个u,最远距离要么是向子树方向的,要么是向上走到都一个父亲,再从这个父亲的位置向下走(不能走回来的方向)到的最远位置 显然我们要设计树形dp来解决这个问题,f[u]表示u子树内的最长距离,并记录一下最大的走的HDU2196 Computer(树形DP)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 32795 Accepted Submission(s): 4689 Problem Description A school bought the first computer some time ago(so this computer's id is 1). DuringHDU2196 Computer
http://acm.hdu.edu.cn/showproblem.php?pid=2196 树型DP 类似树的直径的\(dp\)构造方式 \[dp[u][0]表示以u为根的子树中的最长链\\ dp[u][1]表示以u为根的子树中的次长链(可以与最长链相等)\\ up[u]表示从u到非子树的最长链\\ dp数组一个dfs预处理\\ up[u]要么从其父亲的非子树的HDU2196 Computer(经典树形DP)
题意: 实验室里原先有一台电脑(编号为1),最近绿名DD为又为实验室py了赞助,购置了N-1台电脑,编号为2到N。每台电脑都用网线连接到一台先前安装的电脑上。但是队内大佬担心网速太慢,问他第i台电脑到其他电脑的最大网线长度,但是贪玩的绿名DD沉迷城市天际线忘了计算,请你帮帮他。 题解: nmd太HDU2196_Computer_求树上的每一个点可以达到的最大距离
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int num=1e4+10; struct node { int v,next,w; }e[2*num]; int head[2*num],cnt; int dp[num][2]; void int_i(void) { memset(dp,0,sizeof(dp)); memset(