Description:
在Windows下我们可以通过cmd运行DOS的部分功能,其中CD是一条很有意思的命令,通过CD操作,我们可以改变当前目录。
这里我们简化一下问题,假设只有一个根目录,CD操作也只有两种方式:
1. CD 当前目录名\...\目标目录名 (中间可以包含若干目录,保证目标目录通过绝对路径可达)
2. CD .. (返回当前目录的上级目录)
...
分类:
其他好文 时间:
2015-02-25 18:44:28
阅读次数:
419
Description:
In the figure, each node is labeled with an integer from {1, 2,...,16}. Node 8 is the root of the tree. Node x is an ancestor of node y if node x is in the path between the root and node...
分类:
编程语言 时间:
2015-02-25 14:18:40
阅读次数:
191
题目大意:给定一棵树,求最小路径覆盖
数据范围1W,看到还想跑网络流来着= = 不过算了明明树形DP这么水还是不要用网络流这种大杀器为好
首先将所有的链都考虑成以链上所有点的LCA为转折点的V字形
那么点有两种:转折点和非转折点
因此我们选择两种状态进行转移:还会和父亲组成链的状态和成为转折点的状态
转移就自己YY算了
时间复杂度是线性的
#include
#include
#i...
分类:
其他好文 时间:
2015-02-24 09:08:46
阅读次数:
169
树上任意两点的最近祖先,必定就是这两个节点的最短路径上深度最小的那个点。例如:下图中,节点7和5,其最短路径为7--4--1--5, 这条路径上深度最小的点为节点1,其深度为1.节点1即为节点7和5的LCA。因此,要找到任意两个节点的LCA,只需要先找到上述最短路径,再找到最短路径中深度最小的点。而...
分类:
编程语言 时间:
2015-02-21 20:59:24
阅读次数:
949
题目大意:给定一棵仙人掌,多次询问两点之间的最短路
静态仙人掌= = 在VFK讲仙人掌之前就想做= = 结果一直拖= =
好不容易写完了= = 刚过样例 BZ就开始维护- - 维护到闭营= = 交上去还WA了= = 尼玛我这傻逼到底还是把倍增LCA写挂了= =
算了回归正题
首先我们的思路是这样的
考虑给定的是一棵树 多次询问树上两点间距离
那么我们一般的做法是预处理每个点到...
分类:
其他好文 时间:
2015-02-18 16:30:02
阅读次数:
299
Nearest Common AncestorsTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 19919Accepted: 10544DescriptionA rooted tree is a well-known data str...
分类:
其他好文 时间:
2015-02-16 00:23:18
阅读次数:
118
参考:点击打开链接 点击打开链接 点击打开链接(一些总结) 点击打开链接(不错的模板)
题目:点击打开链接
花了4天时间做完了这个专题,LCA的问题用处还是很大,同时能体会RMQ的ST算法中dp的味道.基本方法就是ST,LCA转RMQ,LCA的Tarjan,LCA倍增(这个可存储边权)
这个专题后面四道题都非常好,推荐大家做做.
细节:
1. ST方法2^i 包含自己,因此其真...
分类:
其他好文 时间:
2015-02-13 10:11:09
阅读次数:
167
参考:点击打开链接 点击打开链接 点击打开链接(一些总结) 点击打开链接(不错的模板)
题目:点击打开链接
花了4天时间做完了这个专题,LCA的问题用处还是很大,同时能体会RMQ的ST算法中dp的味道.基本方法就是ST,LCA转RMQ,LCA的Tarjan,LCA倍增(这个可存储边权)
这个专题后面四道题都非常好,推荐大家做做.
细节:
1. ST方法2^i 包含自己,因此其真...
分类:
其他好文 时间:
2015-02-12 16:23:39
阅读次数:
210
传送门:Network题意:给你一个连通图,然后再给你n个询问,每个询问给一个点u,v表示加上u,v之后又多少个桥。分析:方法(1219ms):用并查集缩点,把不是桥的点缩成一个点,然后全图都是桥,每次加边的两个点如果是缩后的同个点,必定不是桥,否则是桥,再把它们到达lca之间的点缩成一点。方法2(...
分类:
其他好文 时间:
2015-02-08 12:46:18
阅读次数:
141
题目链接:点击打开链接
题意:
给定n个点的树。
下面m个操作,每次给一条路径上的边都染一次。
最后问:每个边被染色的次数。
和去年网赛的一道差不多,就是类似前缀和的做法,
我们在某个点+1然后从叶子节点到根节点求一个前缀和,这样某个点加1就相当于某个点到根的路径都加了1.
所以当我们给[u,v]染色时就 sum[u]++; sum[v]++; sum[LCA(u,v)]-=2;...
分类:
其他好文 时间:
2015-02-07 21:41:38
阅读次数:
254