[HAOI2018]染色 枚举最后有多少有多少个数的出现次数为
然后枚举是哪几种颜色,在哪些位置,其余随便填除这些颜色之外的颜色,颜色之内无顺序,随便填的颜色也考虑了顺序
等等,随便填的也可能正好 S 个,上面求的是至少 i 个的方案数
不妨用 来表示 ,
不妨用 来表示正好 i 个的答案
则
二项式反演一下
有
直接 NTT 即可
[HAOI2018]字串覆盖 看题目范围就要代码分块来做
当 时, 我们队 A 建后缀自动机,把 B 拿去跑,通过fail树上倍增得到
在后缀自动机上的结点,每次询问时,在这个结点找
在
的点,然后往后跳,因为每一步可以跳 2000,所以复杂度
当 时,我们可以对于每一个
预处理出
表示,如果i向
连边,可以建出一颗树,倍增就可以了
复杂度
[HAOI2018]苹果树 一条边的贡献为
考虑枚举每一条边即 siz,边归到下面的点,假设点的编号为 u
首先前 u 个点有 种方案
首先它的子树有
然后还剩下 个点
第一个点有 u-1 种选法,…,第 有
种选法
[HAOI2018]奇怪的背包 发现 与
等价,所以可以把
替换成
,这么做的好处是
都是
的约数可以离散一下大概只有2000个
考虑怎么才能凑出 w,当且仅当
于是可以 dp, 表示到第 i 个,gcd 为 j 的方案数,复杂度
要凉
考虑到 n 个数相同的值只有 2000 个,所以我们可以对这些相同的值一起转移 表示到第 i 个值,gcd = j 的方案数,如果选的话
复杂度