Live2D

[LNOI2022] 盒

lnik

Soluiton

我们设 \(s_i=\sum_{j=1}^{i} a_i\)\(S=\sum_{i=1}^{n} a_i\),那么我们答案可以显然表示为:

\[\sum_{i=1}^{n} w_i\sum_{j=0}^{S} |s_i-j|\binom{i+j-1}{i-1}\binom{n-i+S-j-1}{n-i-1} \]

显然这个 \(w_i\) 就是要我们对于每一个 \(i\) 都算出后面具体的值,所以我们后面可以省掉 \(i\)

然后我们考虑拆开绝对值,可以得到:

\[2\sum_{j=0}^{s_i} (s_i-j)\binom{i+j-1}{i-1}\binom{n-i+S-j-1}{n-i-1}+\sum_{j=0}^{S} (j-s_i)\binom{i+j-1}{i-1}\binom{n-i+S-j-1}{n-i-1} \]

发现后面的上界为 \(S\),那么我们可以考虑先处理它。又因为我们有 \(j\binom{i+j-1}{i-1}=i\binom{i+j-1}{j-1}\),所以后面那部分可以写成:

\[i\sum_{j=0}^{S-1} \binom{i+j}{j}\binom{n-i+S-j-2}{S-j-1}-\sum_{j=0}^{S} s_i\binom{i+j-1}{j}\binom{n-i+S-j-1}{S-j} \]


发现此时并不好继续优化了,递推也不好递推。我们考虑能否从组合意义的角度出发去将 \(j\) 优化掉。

我们发现有这样一个和式:

\[\binom{n+m}{n}=\sum_{j=0}^{m} \binom{i+j}{j}\binom{n+m-i-j-1}{m-j} \]

我们考虑组合意义。放在网格图上面考虑,那么前者显然是 \((0,0)\to (n,m)\) 只能右或上的方案数,而我们后面则是枚举从第 \(i\) 列移动到第 \(i+1\) 列纵坐标为 \(j\) 的方案数。可以发现两者在 \(i<n\) 的时候显然相等。

那么我们可以带入原式中,化简之后得到为:

\[i\binom{n+S-1}{n}-s_i\binom{n+S-1}{S} \]


现在我们还需要处理前面上界为 \(s_i\) 的情况。可以发现这相当于要求从第 \(i\) 列移动到第 \(i+1\) 列时纵坐标不超过 \(s_i\) 的从 \((0,0)\to (n,m)\) 的方案数。可以发现这也等价于从第 \(s_i\) 列移动到 \(s_i+1\) 列时横坐标 \(\ge i+1\) 的方案数。

\((n,m,p,q)\) 表示从 \((0,0)\to (n,m)\)\(p\) 列移动到第 \(p+1\) 列纵坐标不超过 \(q\) 的方案数,可以得到:

\[(n,m,p,q)=\sum_{i=0}^{q} \binom{p+i}{p}\binom{n+m-p-i-1}{m-i}=\sum_{i=p+1}^{n} \binom{i+q}{q}\binom{n+m-q-i-1}{n-i} \]

那么我们可以发现我们每次的 \(p,q\) 是不降的,而 \(n,m\) 是不变的,而我们可以做到 \(\Theta(1)\) 移动一次 \(p,q\),这样均摊下来也是 \(\Theta(n)\) 的。


至此,我们就可以 \(\Theta(n)\) 解决这个问题了。不过正常人谁能想到这个组合意义式子啊😨看来只能打爆bot了😡

posted @ 2022-11-06 20:27  Dark_Romance  阅读(36)  评论(0编辑  收藏  举报