CF1821F

发布时间 2023-11-03 09:35:02作者: zzafanti

传送门

solution

对于一个确定的树木种植位置方案 \(\{x\}\),我们规定树木优先向左侧倒下。

枚举有 \(p\) 个树木向右倒,然后我们要求每个向右倒的树木左侧不能有连续 \(k\) 个空格。设 \(f_{i}\) 表示有 \(p\) 个树木向左倒,恰好有 \(i\) 个能向左倒的树木强制向右倒,则我们需要的就是 \(f_0\)。设 \(g_i\) 表示钦定 \(i\) 个树木能向左倒但强制向右倒,由二项式反演,\(f_0=\sum\limits_{i=0}^m (-1)^i g_i\)

答案就是 \(\sum\limits_{p=0}^m f_0\)

考虑计算 \(g_i\)

\(i\) 个能向左倒但是强制向右倒的要占 \(i\) 个长度为 \(2k+1\) 的段,剩下 \(m-i\) 个树木每个要占 \(k+1\) 个位置,和剩下的空位置插板可以得出放这些段的方案数,再乘上个组合数给每个段分配实际是向左倒还是向右倒即可。

式子是 \(\sum\limits_{p=0}^m \sum\limits_{i=0}^m\dbinom{m}{p}\dbinom{p}{i}\dbinom{n-i(2k+1)-(m-i)(k+1)+m}{m}(-1)^i\)

稍微推一下,答案就是 \(\sum\limits_{i=0}^n \dbinom{m}{i}\dbinom{n-i(2k+1)-(m-i)(k+1)+m}{m}(-1)^i2^{m-i}\)

code

Submission #230981610 - Codeforces