树的重心和直径
文章平均质量分 53
a_crazy_czy
日后,尽量别叫今天的泪白流。
展开
-
[ZJOI2015]幻想乡战略游戏
题目大意一个nn个节点的树,点带有权值dd,边也带有权值(小于等于10001000的正整数)。初始时点权为00。 定义dist(u,v)dist(u,v)为uu与vv两点之间简单路径的边权和。 会有QQ次操作,形如: ∙u e\bullet u\ e,表示dud_u加上e(0≤|e|≤1000)e(0\le|e|\le1000) 每次操作之后,你都需要找到一个点xx,最小化 w=∑i=1n原创 2016-05-13 20:17:32 · 2080 阅读 · 0 评论 -
[51NOD 1766]树上的最远点对
题目大意nn个点被n−1n-1条边连接成了一颗树,边有权值wiw_i。有qq个询问,给出[a,b][a,b]和[c,d][c,d]两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出 max{dis(i,j)|i∈[a,b],j∈[c,d]} max\{dis(i,j)|i\in[a,b],j\in[c,d]\} 1≤n,q≤105,1≤wi≤1041\le n,q\le原创 2016-06-30 16:51:00 · 1519 阅读 · 0 评论 -
[HackerRank University CodeSprint]Unique Divide And Conquer
题目大意一个nn个节点的树。在点分治算法中,我们每次寻找树的重心(其作为根各棵子树大小小于等于⌊n2⌋\lfloor\frac{n}{2}\rfloor),然后删掉这个点,对各棵子树继续剖分。 当然,在某些情况下,我们在分治的过程中会遇到存在两个重心的情况。 现在我们要求对于所有nn个节点的树,只有一种点剖方案(点剖过程中不会出现两个重心)的树的个数。 节点是有编号的。两种方案不同当且仅当存在原创 2016-11-15 21:41:25 · 668 阅读 · 0 评论 -
[JZOJ5012]远行
题目大意一个nn个点的图,一开始没有边。有qq个操作,要么连接两个点(边权为11),要么查询一个点能走到的最远点距离。 保证任何时候图不存在环。强制在线。n≤3×105,q≤5×105n\le3\times10^5,q\le 5\times10^5题目分析并查集维护直径,LCT维护两点距离即可。 时间复杂度O(qlogn)\mathrm O(q\log n)。代码实现#include <algo原创 2017-04-09 09:40:04 · 381 阅读 · 0 评论 -
[JZOJ5091]绝版题
题目大意有一棵树,一开始只有一个节点11,权值为tt。 接下来会有qq个操作,操作有以下三种: ∙ \bullet\ 插入一个节点,编号是当前点数+1+1,父亲节点是xx,权值是yy ∙ \bullet\ 将节点xx的权值修改为yy ∙ \bullet\ 询问这棵树的带权重心的编号,如果有两个,那么选择离11号节点最近的那个 本题强制在线。1≤q≤3×1051\le q\le3\times原创 2017-05-03 21:56:35 · 486 阅读 · 0 评论