随笔分类 - 数据结构
摘要:其实打返祖边就相当于$x$到祖先这一段点(不包括两端)答案都要减$1$. 然后每个点最多减$1$次$1$。
阅读全文
摘要:题目链接 2017 CCPC Hangzhou Problem H 思路:对树进行分块。把第一棵树分成$\sqrt{n}$块,第二棵树也分成$\sqrt{n}$块。 分块的时候满足每个块是一个连通块,那么每个块就有一个共同的祖先。 把询问按照第一个点被第一棵树的哪个祖先管辖和第二个点被第二棵树的哪个
阅读全文
摘要:题目链接 2016 ZJCPC Problem B 题意 CF 660F的树上版本。 其他做的方法都差不多,关键是把凸壳放到树上。 每次确定扔掉几个元素的时候直接$O(1)$修改(先不清楚这个位置之后的元素因为之后还要恢复),然后$O(1)$恢复,通过这个来实现可持久。
阅读全文
摘要:题目链接 2018广东工业大学校赛 Problem B 考虑到每条边的权值变化$26$个时刻之后一定会回到原来的状态。 那么预处理出前$26$个时刻每棵树的形态,对每棵树做一遍字符串哈希。 查询的时候找到满足$x$往上爬$k$步和$y$往上爬$k$步之后面对的边的边权不一样的时候的$k$的最小值。
阅读全文
摘要:题目链接 Educational Codeforces Round 39 Problem G 题意 给定一个序列,求把他变成Almost Increasing Array需要改变的最小元素个数。 Almost Increasing Array为删掉至多一个元素之后可以成为严格递增子序列的数列。 这类
阅读全文
摘要:题目链接 Educational Codeforces Round 22 Problem E 题意 给定一个序列,$q$次查询,询问从$l$到$r$中出现过的数字的出现次数和$k$取较小值后的和 设$f(i, 1)$表示满足$a_{j} = a_{i}$并且$j < i$的$j$的最大值,若不存在这
阅读全文
摘要:题目链接 道路修建 EXT 考虑并查集的启发式合并,合并的时候小的子树的根成为大的子树的根的儿子。 可以证明这样整棵树的深度不会超过$logn$。 两个根合并的时候,产生的新的边的边权为当前的时间。 那么询问的时候答案就为$x$到$y$的最短路径上的所有边的边权最大值。
阅读全文
摘要:题目链接 ZOJ Monthly, March 2018 Problem F 题意很明确 这个模数很奇妙,在$[0, mod)$的所有数满足任意一个数立方$48$次对$mod$取模之后会回到本身。 所以开$48$棵线段树,和一个永久标记。当对某个区间操作时对这个区间加一层永久标记。 即当前我要查找的
阅读全文
摘要:题目链接 Round #458 (Div. 1 + Div. 2, combined) Problem D 题意 给定一个序列,两种询问:单点修改,询问某个区间能否通过改变最多一个数使得该区间的$gcd$值为$val$。 问题转化为询问某个区间里不是val的倍数的数的个数是否不超过$1$。 用线段树
阅读全文
摘要:题目链接 2016多校1 Problem J 题意 给定两棵相同的树,但是编号方案不同。求第一棵树上的每个点对应的第二棵树上的点。输出一种方案即可。 首先确定树的直径的中点。两棵树相等意味着两棵树的直径相等。 然而直径有很多条,我们任意求出两棵树的各一条直径并不以为着这两条直径是相对应的。 但是直径
阅读全文
摘要:题目链接 Problem D 这个题类似 SPOJ GSS3 做过那个题之后其实就可以秒掉这题了。 考虑当前线段树维护的结点 在那道题的基础上,这个题要多维护几个东西,大概就是左端点的奇偶性,右端点的奇偶性。 以及当前结点代表的区间是否是一个有效的子序列。 时间复杂度$O(nlogn)$
阅读全文
摘要:题目链接 2016 Qingdao Online Problem I 题意 在一棵给定的树上删掉一条边,求剩下两棵树的树的直径中较长那的那个长度的期望,答案乘上$n-1$后输出。 先把原来那棵树的直径求出来。显然删掉的边不是这条直径上的边,那么这时答案就是这条直径的长度。 否则就是直径的某个端点到某
阅读全文
摘要:题目链接 2016 CCPC东北地区大学生程序设计竞赛 B题 题意 给定一个无向图和一棵树,树上的每个结点对应无向图中的一条边,现在给出$q$个询问, 每次选定树中的一个点集,然后真正被选上的是这些点以及这些点的所有祖先。 只有标号在树中真正被选上的点代表的这些原图中的边是存在的,这样就构成了一个新
阅读全文
摘要:题意 给定一个$n$个点$n$条边的无向图,现在要把这个图进行若干次操作,并选择一个点作为首都。 要求除首都外的任意两个点$u$, $v$,从$u$走到$v$必须经过这个首都。 操作为合并两个相邻的点为一个点,即把这两个点从原图中删除,连接这两个点的边接到新的点上去。 考虑最后这个图的形态其实是一个
阅读全文
摘要:题目链接 Jamie and Tree 题意 给定一棵树,现在有下列操作: $1$、把当前的根换成$v$;$2$、找到最小的同时包含$u$和$v$的子树,然后把这棵子树里面的所有点的值加$x$; $3$、查询以$v$为根的子树的点权之和。 这道题其他都是常规操作,就是当前根结点为$cnt$的时候求$
阅读全文
摘要:题目链接 BZOJ3083 换根不能真正地换。 令当前的根为$cnt$,要查找的子树根为$x$ $1$、$x = cnt$,那么要查找的区域就是整棵树。 $2$、$x$在以$cnt$为根的子树内,那么要查找的区域就是以$x$为根的子树。 $3$、$x$在以$cnt$为根的子树外 (1)$x$不是$c
阅读全文
摘要:题目链接 Mishka and Interesting sum 题意 给定一个数列和$q$个询问,每次询问区间$[l, r]$中出现次数为偶数的所有数的异或和。 设区间$[l, r]$的异或和为$s(l, r)$, 区间$[l, r]$中所有出现过的数的异或和为$c(l, r)$ 那么每个询问的答案
阅读全文
摘要:题目链接 ECNU 2018 JAN Problem E 这题卡了双$log$的做法 令$gcd(a_{i}, a_{i+1}, a_{i+2}, ..., a_{j}) = calc(i, j)$ 根据最大公约数的性质我们知道一个数和另一个数求$gcd$之后如果变小了,那么结果小于等于之前那个数的
阅读全文
摘要:题目链接 rausen loves cakes 题意 给出一个序列和若干次修改和查询。修改为把序列中所有颜色为$x$的修改为$y$, 查询为询问当前$[x, y]$对应的区间中有多少连续颜色段。 序列长度为$n$,总操作数为$q$,满足$1 <= n <= 10^{5}, 1 <= q <= 10^
阅读全文
摘要:题目链接 Imbalance Value of a Tree 题意 给定一棵树。求树上所有简单路径中的最大权值与最小权值的差值的和。 首先考虑求所有简单路径中的最大权值和。 对所有点按照权值大小升序排序,即若$a[i] < a[j]$,那么$i$排在$j$前面。 接下来开始依次处理。对于每个点$i$
阅读全文

浙公网安备 33010602011771号