摘要:
后缀自动机总结 ~~鉴于我觉得也没有人会看我这份总结学SAM,所以这里索性就只放一个板子了。~~ 核心代码在这里: 几个需要注意的地方: 1、$N$的大小要开两倍。 2、$last,tot$的初值是$1$。 3、在字符集比较大的时候$tr$转移可以开$map$,空间复杂度更优秀尽管加那么一点点常数。 阅读全文
摘要:
"vjudge" sol 树DP。 首先把模型转换成:每个点可以控制与它距离不超过$w_i$的点,先要求选出数量最少的点控制所有点。 设$f[i][ 100...100]$表示$i$号点向上还可以额外控制距离为$j$的点的选点最少数量。 $j$为负则表示$j$子树中还有$ (j+1)$深度的点没有控 阅读全文
摘要:
"bzoj" "luogu" sol 很显然的两遍树DP吧。 设$f_i$表示只考虑$i$的子树,$i$点没有电的概率。 $$f_i=q_i \prod_{v是i的儿子}f_v+(1 f_v) (1 p_e)$$ 为了方便表示把后面那一坨记为$h_v$,即$h_i=f_i+(1 f_i) (1 p_ 阅读全文
摘要:
"bzoj" "luogu" sol 首先考虑如果没有硬币数量的限制该怎么做。 直接上背包吧。 直接上背包存在的问题就是不知道硬币的使用数量有没有超出限制。 那就容斥一波。 考虑每种硬币,强制其超出限制,也就是强制先使用$d_i+1$个该种硬币,然后剩下队随便选。 时间复杂度是$O(V+q 2^4) 阅读全文
摘要:
"bzoj" "luogu" sol 根据Nim游戏的原理可知若异或和为零则后手必胜,否则先手必胜。 所以题目的要求其实就是:选出一个总和尽量小的集合,使其补集的任意非空子集队异或和都不为零。 转化一下,去掉一个总和尽量小的集合,也就是保留尽量大。 这也就是 "bzoj2460元素" 那个题了。 而 阅读全文