HDU2196computer】的更多相关文章

Computer Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4990    Accepted Submission(s): 2509 Problem Description A school bought the first computer some time ago(so this computer's id is 1). Du…
原题连接: http://acm.hdu.edu.cn/showproblem.php?pid=2196 思路: 好了,无敌了,经过昨晚4个钟头+今上午1个小时的奋战,这题终于被我AC了 收获的确是不小..呵呵 一步步的总结吧,题意就是让你求给定树中某一个点到其他任意点的最大权值 (1)总体的思路.一个点到其他任意点的最大权值只有两种可能性,一个是这个值来自的子树,另一个是这个值来自父结点,因为这个点通往外界的出口就只有这两条了. (2)首先是求出子树的最大权值,这个只需要用一个dfs+记忆化搜…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196 思路: 一看就是一道树形DP的题目,对于一个节点来说,到它的最远距离的路径可能来于子树,也可能来源于经过父亲节点的路径,所以我们两次DFS即可. 第一次DFS自底向上(从叶节点开始),依次求出每个节点的在其子树上的最大距离和次大距离 第二次DFS自顶向下(从根节点开始),通过比较经过父亲节点的路径的最大距离和来源于子树的最大距离比较然后更新最大距离 至于为什么要保存次大距离呢??因为经过父亲节…
链接: http://acm.hdu.edu.cn/showproblem.php?pid=2196 题意: A school bought the first computer some time ago(so this computer's id is 1). During the recent years the school bought N-1 new computers. Each new computer was connected to one of settled earlie…
就是求每个点为起始点的最长链的长度. 写一下各个数组的意思吧. f[i][0]为点i向下走最长的距离:f[i][1]为点i向下走第二长的距离: xia[i][0]为点i向下走最长距离所要走的儿子节点: xia[i][1]为点i向下走第二长长距离所要走的儿子节点: f[i][2]为点i向上走的最大距离: 显而易见求向下的DP递推就好了. 求向上的DP 注意:两个DP都是从根节点往下更新. #include<cstdio> #include<algorithm> #include<…