*【HT-066-Rainbow】核桃彩虹周赛

核桃OJ

A

语法题,直接模拟即可。

B

只要两端不同就删去,留下来的长度即为答案。

C

把贡献放到第一次出现的位置上,设 \(lst_i\) 为上一个 \(=a_i\) 的位置(没有则为 \(0\)),则答案为 \(\sum a_i(n-i+1)(i-lst_i)\)

D

SG 函数模板题,不会的可以去学一下。

E

直接枚举第一个改变的位,后面的位都可以任意调整,按位贪心即可。

G

特判 \(k=0\),令 \(X=\frac{x}{x+1}\)

考虑 \(t^k\) 的组合意义:\(t\) 个人 \(k\) 轮每轮找一个人,找出来的人的序列的方案数。

不难发现对于序列 \(a_1,\dots,a_k\),其对答案的贡献是 \(X^c(1+X(n-\max a_i))\),其中 \(c\) 表示 \(a\) 的颜色数。

考虑枚举 \(c\),设 \(C_i\) 为将 \(k\) 个人分到 \(i\) 个班且每个班都有人的方案数,注意到 \(\sum_a (n-\max a_i+1)=C_c\sum_{i=c}^{n}\binom{i}{c}=C_c\binom{n+1}{c+1},\sum_a 1=C_c\binom{n}{c}\),问题变为求 \(C\)

考虑容斥,有 \(C_i=\sum_{j=0}^{i-1}(-1)^j\binom{i}{j}(i-j)^k=i!\sum_{j=0}^{i-1}\frac{(-1)^j(i-j)^k}{j!(i-j)!}\)

于是设 \(A_i=\frac{(-1)^i}{i!},B_i=\frac{i^k}{i!}\),则 \(C_i=i!\sum_{x+y=i}A_xB_y\),ntt 即可。

后来想了一下发现所有二项式反演都能用类似方式优化啊,为什么没人告诉我???

posted @ 2025-06-30 00:12  ax_by_c  阅读(43)  评论(0)    收藏  举报