随笔分类 - 思想——倍增
摘要:题面 "传送门" 题解 首先,我们把串反过来,那么前缀就变成后缀,建一个$SAM$。我们发现一个节点的后缀是它的所有祖先 那么我们是不是直接按着$parent$树建边就可以了呢? 显然不是。我们假设在$SAM$的某个节点上同时存在某个$a_i$和$b_j$且$|b_j| |a_i|$,$b_j$不是
阅读全文
摘要:题面 "传送门(1143)" "传送门(1142)" $1143A$ 咕咕 $1143B$ 显然最终的答案肯定是后面一堆$9$加上前面的数字,模拟一下就行了 $1143C$ 显然合法的点永远合法,不合法的点永远不合法,直接把所有合法的点找出来$sort$一下就行了 cpp //minamoto in
阅读全文
摘要:题面 "传送门" 题解 字符串就硬是要和数据结构结合在一起么……$loj$上$rk1$好像码了$10k$的样子…… 我们设$L=r l+1$ 首先可以发现对于$T$串一定是从左到右,能取就取是最优的 我们先用后缀自动机$+$线段树合并求出自动机上每一个节点的$endpos$集合。如果$L$较大的时候
阅读全文
摘要:题面 "传送门" 题解 我们先想想,在这个很特殊的图里该怎么走最短路 先设几个量,$a_i$表示$[a_i,i 1]$之间的点都和$i$有边(即题中的$l_i$),$l$表示当前在计算从$i$到$[l,i]$中的所有点的步数总和。那么答案就是$[l,i] [r+1,i]$ 因为$a_i$表示$[a_
阅读全文
摘要:"传送门" "题解" 倍增也好二分也好,果然复杂度只要和$\log$插上关系就没我啥事了…… 首先由一个显而易见~~然而我完全没有发现~~的结论,设$calc(l,r)$表示区间$[l,r]$的$or$起来加区间的$and$起来加区间的$\gcd$起来(就是题目里说的那个乱七八糟的东西)的值,那么我
阅读全文
摘要:"传送门" 好迷的思路…… 首先,如果只有第一问就是个贪心,排个序就行了 对于第二问,我们考虑这样的一种构造方式,每一次都判断加入一个区间是否会使答案变差,如果不会的话就将他加入~~别问我正确性我不会证~~ 我们先把所有的区间按左端点排个序顺便把互相包含的区间去掉(毕竟互相包含的时候短的肯定比长的优
阅读全文
摘要:传送门 据大佬说这玩意儿好像叫灾难树还是灭绝树? 我们先按建图,设点$u$的食物有$x[1]...x[k]$,即在图中这些点都有一条指向它的边 以样例来说,对于人,羊和牛都有一条指向它的边,然而不管是羊的灭绝还是牛的灭绝都不会导致人的灭绝,会导致人灭绝的只有草,也就是羊和牛的LCA (严格来说这个应
阅读全文
摘要:传送门 思路太妙了啊…… 容易才怪想到暴力,把区间内的每一个数字用并查集维护相等,然后设最后总共有$k$个并查集,那么答案就是$9*10^{k-1}$(因为第一位不能为0) 考虑倍增。我们设$f[i][j]$表示区间$[i,i+2^j-1]$,那么我们可以把原区间给拆成$log$个区间,然后维护这些
阅读全文
摘要:题意翻译 现有n个点组成一棵以1为根的有根树,第i个点的点权为wi,需将其分成若干条垂直路径使得每一个点当且仅当被一条垂直路径覆盖,同时,每条垂直路径长度不能超过L,点权和不能超过S,求最少需要几条垂直路径才能满足要求。特别地,无解输出-1。 一条垂直路径是一条包含v1, v2...vk的路径,使得
阅读全文
摘要:传送门 倍增水题…… 本来还想用LCT做的……然后发现根本不需要
阅读全文

浙公网安备 33010602011771号