这道题的内存…………………真·精神污染……….. 这道题的思路很明了,我们就是要找每一个路径包含了多少其他路径那么就是找,有多少路径的左右端点都在这条路径上,对于每一条路径,我们随便选定一个端点作为第一关键字,另一个作为第二关键字,于是就有了两维限制,按照主席树的一般思路,我们把建树顺序作为一维,然 ...
分类:
其他好文 时间:
2017-08-05 10:01:39
阅读次数:
259
lca的做法还是非常明显的。简单粗暴。 只是不是正解,假设树是长链就会跪。直接变成O(n)、、 最后跑的也挺快,出题人还是挺阳光的。。 动态树的解法也是听别人说能ac的,预计就是放在splay上剖分一下,做法还是比較复杂的。,, 来一发lca: #include <stdio.h> #include ...
分类:
其他好文 时间:
2017-08-04 13:45:35
阅读次数:
153
ETT模版题。 真正的Eular-Tour-Tree维护的是树的欧拉序。 由于各种原因,没人知道怎么维护欧拉序,所以我写的是个假的,维护dfs序的。 本质还是用Splay维护序列。 然后因为我常数太差,压着线跑过去的…… ...
分类:
其他好文 时间:
2017-06-20 20:12:34
阅读次数:
152
刷个清新的数据结构题爽一爽? 题意: 有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。 ...
分类:
其他好文 时间:
2017-06-01 00:31:25
阅读次数:
193
1#树上倍增 以前写的博客:http://www.cnblogs.com/yyf0309/p/5972701.html 预处理时间复杂度O(nlog2n),查询O(log2n),也不算难写。 2#st表(RMQ) 首先对一棵树进行dfs,得到欧拉序列,记录下每个节点的第一次出现位置。 (先序遍历这棵 ...
分类:
编程语言 时间:
2017-01-22 22:43:30
阅读次数:
585
树的经典问题和方法 《算法竞赛入门经典(第2版)》392页 欧拉序列。对有根树t进行dfs(深度优先遍历),无论是递归还是回溯,每次到达一个结点时都将深度记录下来,可以得到一个长度为2n-1的序列,称为t的欧拉序列f(类似于欧拉回路)。 为了方便,把结点k在欧拉序列中第一次出现的序号记为pos(k) ...
分类:
其他好文 时间:
2016-10-23 17:47:51
阅读次数:
154
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1079 现有一棵有N个顶点的树,顶点的标号分别为1, 2, …, N。对于每个形如a b k的询问,你需要回答在从点a到点b的路径上是否包含点k。 DFS序&欧拉序列 LCA-最近公共祖先 看完这两篇 ...
分类:
其他好文 时间:
2016-10-22 11:33:08
阅读次数:
237
http://www.lydsy.com/JudgeOnline/problem.php?id=1103 在线查询某点到根节点的点权和,参考DFS序&欧拉序列,用树状数组维护即可O(nlogn) ...
分类:
其他好文 时间:
2016-10-20 00:30:38
阅读次数:
132
lca的做法还是非常明显的。简单粗暴, 只是不是正解。假设树是长链就会跪,直接变成O(n)、、 最后跑的也挺快,出题人还是挺阳光的。。 动态树的解法也是听别人说能ac的。预计就是放在splay上剖分一下,做法还是比較复杂的。,, 来一发lca: #include <stdio.h> #include
分类:
其他好文 时间:
2016-01-27 19:14:50
阅读次数:
212
有两个基础需要掌握:RMQ,以及LCA。RMQ:dp[i][j]表示下标从i开始,长度为2^j的一段元素中的最值。则易得状态转移如下:dp[i][j]=max/min(dp[i][j-1],dp[i+2^j-1][j-1];LCA:最近公共祖先结点的求法:可先进行一次dfs得到欧拉序列。比如对,得到...
分类:
其他好文 时间:
2015-10-15 20:22:47
阅读次数:
177