专栏文章

P6811「MCOI-02」Build Battle 建筑大师 魔怔题解

P6811题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipee613
此快照首次捕获于
2025/12/03 10:38
3 个月前
此快照最后确认于
2025/12/03 10:38
3 个月前
查看原文
这是一篇不需要容斥,不需要注意力,不需要猜结论,不需要组合意义的题解!!1
考虑计算本质不同子序列的经典 DP。本题中,即为 fi=2fi1fim1f_i=2f_{i-1}-f_{i-m-1},意为考虑前 ii 个数的本质不同子序列均可以通过前 i1i-1 个数的答案决策是否拼上 ai=imodm+1a_i = i \bmod m + 1 得到,同时减去算重的(这部分均可通过 im1i-m-1 的答案拼上 aia_i 得到)。边界是 f0=1f_0=1
直接启动 GF。
F(x)=i0fixiF(x)=\sum_{i\ge 0}f_ix^i,则根据上述递推式有:
F(x)=2xF(x)xm+1F(x)+1F(x) = 2xF(x)-x^{m+1}F(x)+1
解方程,有:
F(x)=112x+xm+1F(x) = \frac{1}{1-2x+x^{m+1}}
使用牛顿二项式定理提取系数:
Ans=[xn]F(x)=[xn]i0(1i)(xm+12x)i=[xn]i0(1)ij=0i(ij)x(m+1)j+(ij)(2)ij=[xn]i0(1)ij=0ixmj+i(2)ij(ij)\begin{aligned} \text{Ans} &= [x^n]F(x) \\ &= [x^n]\sum_{i\ge 0}\binom{-1}{i}(x^{m+1}-2x)^i \\ &= [x^n]\sum_{i\ge 0}(-1)^i\sum_{j=0}^i \binom{i}{j}x^{(m+1)j+(i-j)}(-2)^{i-j} \\ &= [x^n]\sum_{i \ge 0}(-1)^i\sum_{j=0}^ix^{mj+i}(-2)^{i-j}\binom{i}{j} \\ \end{aligned}
我们直接枚举 jjii 可以算出来。注意要保证 iji \ge j
Ans=j=0nm+1(1)nmj(2)nmjj(nmjj)=j=0nm+1(1)j2nmjj(nmjj)\begin{aligned} \text{Ans} &= \sum_{j=0}^{\lfloor\frac{n}{m+1}\rfloor}(-1)^{n-mj}(-2)^{n-mj-j}\binom{n-mj}{j} \\ &= \sum_{j=0}^{\lfloor\frac{n}{m+1}\rfloor}(-1)^{j}2^{n-mj-j}\binom{n-mj}{j} \end{aligned}
显然对于 mm11nnnm+1\lfloor\frac{n}{m+1}\rfloor 之和是 O(nlnn)O(n \ln n) 量级的,直接计算即可。
以上。

评论

0 条评论,欢迎与作者交流。

正在加载评论...