题意:给定一棵N个点树,询问这个树里面每个点到树上其他点的最大距离。 n<=10000 思路:设f[u,1],f[u,2]为以U为根向下的最长与次长,g[u,1],g[u,2]为从哪个儿子转移来 第一次dfs用V更新U,第二次dfs用U更新V,因为有V向U往上走的情况,这样做就可以处理了 可以发现这 ...
分类:
其他好文 时间:
2016-11-06 19:42:57
阅读次数:
246
题意:有一棵N个点的树,每个点上有点权 定义路径长度为所经过的所有点的点权之和,树的直径为一棵树中最大的路径长度 有N次询问,每次询问要求回答所有树的直径之积 每次询问后会删一条边,树的数量会+1 要求回答N次询问,答案 mod 10^9+7 n<=100000 思路:因为知道每次删哪条边所以可以离 ...
分类:
其他好文 时间:
2016-11-03 13:28:34
阅读次数:
211
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2180 2180: 最小直径生成树 Description 输入一个无向图G=(V,E),W(a,b)表示边(a,b)之间的长度,求一棵生成树T,使得T的直径最小。树的直径即树的最长链,即树上 ...
分类:
其他好文 时间:
2016-10-28 22:32:29
阅读次数:
290
1227. Rally Championship Time limit: 1.0 secondMemory limit: 64 MB A high-level international rally championship is about to be held. The rules of the ...
分类:
其他好文 时间:
2016-10-21 23:50:34
阅读次数:
290
题意:N个点的一棵带权树。切掉某条边的价值为切后两树直径中的最大值。求各个边切掉后的价值和(共N-1项)。 解法一: 强行两遍dp,思路繁琐,维护东西较多: dis表示以i为根的子树的直径,dis2表示切掉以i为根的子树后的直径。 第一遍dp,记录 down[][0]:从i结点向下的最大距离 dow ...
分类:
其他好文 时间:
2016-10-19 07:39:41
阅读次数:
220
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3534 题意: 给你一棵树,问你有多少对点的距离等于树的直径。 思路: dp[i][0]表示在i的子树中 离i最远的距离,dp[i][1]是次远距离。 cnt[i][0]则是最远的点的数量,cnt[i][ ...
分类:
其他好文 时间:
2016-10-10 23:06:39
阅读次数:
154
http://poj.org/problem?id=1985 (题目链接) 题意 求树上两点间最长距离。题目背景以及输入描述请见poj1984。 Solution 树的直径。 代码 ...
分类:
其他好文 时间:
2016-10-06 00:21:12
阅读次数:
137
题目链接 如果k==1, 显然就是直径。 k==2的时候, 把直径的边权变为-1, 然后在求一次直径。 变为-1是因为如果在走一次这条边, 答案会增加1. 学到了新的求直径的方法... ...
题意:略。 析:首先先判环,如果有环直接输出,用并查集就好,如果没有环,那么就是一棵树,然后最长的就是树的直径,这个题注意少开内存,容易超内存, 还有用C++交用的少一些,我用G++交的卡在32764K,限制是32768K。。 代码如下: ...
分类:
其他好文 时间:
2016-10-01 19:10:34
阅读次数:
181
1427 文明 题目来源: CodeForces 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 1427 文明 题目来源: CodeForces 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 1427 文明 题目 ...
分类:
其他好文 时间:
2016-09-27 19:35:06
阅读次数:
259