树 【问题描述】 读入一颗 n个点的带权树,求 1. 直径长度。(距离最远的两点) 直径长度。(距离最远的两点) 2. 若删去任意一个点,原树会分裂成些连通块。求数最多的大小的最值。 3. 读入 Q个询问,每包括 (x,y) (x,y) ,表示查询从 ,表示查询从 x到 y路径上点权的最大值。【输入 ...
分类:
其他好文 时间:
2017-05-16 21:42:21
阅读次数:
231
神TM的红黑树,其实本质上应该还是一种树dp的问题…… 一开始想了一个比较裸的树dp,后来发现还有更强的做法。 每个前端黑节点是看作一个物品,然后这就是很典型的树形dp的问题。 不过可以这么考虑,考虑怎么缩小问题的范围。 我们可以把黑色节点的连通块缩成一个点,这样的话就要考虑三个情况: 所以直接贪心 ...
分类:
其他好文 时间:
2017-05-14 12:11:07
阅读次数:
122
以下是Claris的题解: 若线段 i 和 j 相交,那么在它们之间连一条边。若这个图不是二分图,那么无解,否则令cnt 为连通块个数,那么 ans = 2cnt。 在二分图染色的过程中,每个点只需要被访问一次。对于当前所在的点 x,它可以一步走到 [1, x) 里 p[i] > p[x] 的所有 ...
分类:
其他好文 时间:
2017-05-07 12:59:02
阅读次数:
202
Kruskal算法 图的最小生成树的算法之一,运用并查集思想来求出最小生成树。 基本思路就是把所有边从小到大排序,依次遍历这些边。如果这条边所连接的两个点在一个连通块里,遍历下一条边,如果不在,就把这条边加入连通块,这样就可以保证生成树的边权最小。 我们使用并查集来判断两个点是否在同一个连通块里,如 ...
分类:
编程语言 时间:
2017-05-07 10:25:03
阅读次数:
181
题目地址:http://codeforces.com/contest/461/problem/B 题目大意:给一棵树。每一个点为白色或黑色。切断一些边,使得每一个连通块有且仅有一个黑点,问划分方案数。 算法讨论:TreeDP。f[x][0..1]表示x所在连通块有0/1个黑点。设y为x的儿子,则DP ...
分类:
移动开发 时间:
2017-05-07 10:10:41
阅读次数:
194
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2595 【题解】 斯坦纳树模板题。学了一发斯坦纳树。 对于一般的斯坦纳树,是 给出一些点和一些关键点和边,要求选择权值和最小的连通块使得关键点连通。 那么一般我们用f(x,status)表示在x ...
分类:
其他好文 时间:
2017-04-29 23:33:48
阅读次数:
222
Description 对于一个n*m的地图,每个格子有五种可能:平地,障碍物,出口,入口和神器。一个有效的地图必须满足下列条件: 1.入口,出口和神器都有且仅出现一次,并且不在同一个格子内。 2.入口,出口和神器两两都是连通的。 连通性判断为四连通。 现在给出一个n*m的地图,其中一些格子的状态已 ...
分类:
其他好文 时间:
2017-04-23 20:21:34
阅读次数:
265
知识点-Tarjan 割点:在一个无向连通图中,如果删掉点 x 后图的连通块数量增加,则称点 为图的割点。 条件: 1)对于搜索树上的非根结点 x ,如果存在子节点 i 满足 F[i]>=D[x] ,即 i 向上无法达到 x 的祖先,则 x 为割点,这一点比较能够理解。 2)对于搜索树上的根节点x, ...
分类:
其他好文 时间:
2017-04-21 14:24:34
阅读次数:
159
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1737 题意: 思路: 树的重心。 树的重心就是其所以子树的最大的子树结点数最少,删除这个点后最大连通块的结点数最小,也就说各个连通块尽量平衡。 这道题的话就是先求一个重心, ...
分类:
其他好文 时间:
2017-04-17 19:48:23
阅读次数:
293
Description 加边,询问连通块中所有点到重心的距离。 Solution LCT. http://www.cnblogs.com/clrs97/p/4776809.html 一开始没想到怎么合并两颗树时候计算贡献... Code ...
分类:
其他好文 时间:
2017-04-17 09:25:14
阅读次数:
216