裸的LCA离线算法,存下来当模板用吧。思想就是,将所有的查询都先存起来,然后对树做一次dfs遍历,对每一次经过的节点进行染色,标记为未访问,正在访问,和已经访问完毕。可以很明显的发现如果当前点是一个查询的端点,那么如果另外一个端点正在访问,则当前点是另外一个端点的子节点,两者的LCA为另外一个端点,...
分类:
其他好文 时间:
2014-10-31 20:34:28
阅读次数:
217
题目链接:hdu 4757 Tree
题目大意:给定一棵树,每个节点有一个值,现在有Q次询问,每次询问u到v路径上节点值与w亦或值的最大值。
解题思路:刚开始以为是树链剖分,其实树链剖分只是用来求LCA(可以不用树链剖分)。
可持久化字典树,在每次插入的同时,不修改原先的节点,而是对所有修改的节点复制一个新的节点,并且在新的节点
上做操作,这样做的目的是能够获取某次修改...
分类:
其他好文 时间:
2014-10-30 19:12:51
阅读次数:
393
分块LCA什么的,意外地快呢……就是对询问的3个点两两求LCA,若其中两组LCA相等,则答案为第三者。然后用深度减一减什么的就求出距离了。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define maxn 500001 6 ...
分类:
其他好文 时间:
2014-10-29 16:28:09
阅读次数:
205
动态规划法
经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加(分治思想,递归方法。往往会由于数据大导致递归层次过多而超时或爆栈,即使采用记忆化等优化策略,仍然可能解决不了问题)。...
分类:
其他好文 时间:
2014-10-28 17:46:42
阅读次数:
302
题目大意:有两个小孩在玩游戏,他们每一个人在树中取一个点,如果这两个点之间的路径长度之和是3的倍数,那么聪聪就赢了,否则他就输了。给出这棵树,求聪聪赢的概率,答案用分数表示。
思路:数据范围2w,肯定不能枚举点然后LCA。所以就只能点分治了。这还是一道比较常规的点分治问题,但是有一个地方需要注意,在统计两点之间的距离的时候我一开始的想法是直接n^2的枚举,然后记录。但是那样时间复杂度就会...
分类:
其他好文 时间:
2014-10-27 14:28:07
阅读次数:
188
最近在强化知识点深度,发现树链剖分不是很会写了。
回顾一下修改操作:
若两个点在同一条链上,则直接修改这段区间。
若不在同一条链上,修改深度较大的点到其链顶端的区间,同时将这个点变为他所在链顶端的父亲,循环操作直到这两个点在同一条链上,就可以用上一种方法了。
没有用LCA写是因为以前被坑过,不但没有这种方法好写,效率也不太让人满意。
主要是对第二种情况如何写有所遗忘,写道模版再给自己提个...
分类:
其他好文 时间:
2014-10-26 17:00:56
阅读次数:
214
2014-10-2515:13:56暑假打(luan)完(gao)了基础,是时候做一下下一步的规划了。 codeforces #190-#199 图论--基础(割顶、割边、连通性等) 图论--二分图及二分图匹配 图论--差分约束 树结构--BST 树结构--LCA 树结构--树分治 ...
分类:
其他好文 时间:
2014-10-25 15:47:45
阅读次数:
240
找二叉树的最近公共父结点。有父结点指针时,容易找。没有父结点指针时,一种算法时间复杂度为O(N^2),一种算法时间复杂度为O(N)。...
分类:
其他好文 时间:
2014-10-24 18:58:48
阅读次数:
520
题目大意:给定一棵以1为根的有根树,每个节点有点权,提供两种操作:
1.以某个节点为根的子树所有节点权值+x
2.求一些链的并集的点权和,其中这些链都是由某个节点出发指向根
首先子树修改,链上查询,树链剖分的WT~
然后这些链上的每个点的点权都只能被加一次,肯定不能打标记,由于k
总权值=单链-两两之交+三链之交……
状压枚举即可 两条链的交集求法如下:
1.求两条链底的LCA
2...
分类:
其他好文 时间:
2014-10-23 14:33:59
阅读次数:
143
3626: [LNOI2014]LCATime Limit:10 SecMemory Limit:128 MBSubmit:426Solved:124[Submit][Status]Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+...
分类:
其他好文 时间:
2014-10-23 01:14:35
阅读次数:
243