[LNOI2022] 盒
Soluiton
我们设 \(s_i=\sum_{j=1}^{i} a_i\),\(S=\sum_{i=1}^{n} a_i\),那么我们答案可以显然表示为:
显然这个 \(w_i\) 就是要我们对于每一个 \(i\) 都算出后面具体的值,所以我们后面可以省掉 \(i\)。
然后我们考虑拆开绝对值,可以得到:
发现后面的上界为 \(S\),那么我们可以考虑先处理它。又因为我们有 \(j\binom{i+j-1}{i-1}=i\binom{i+j-1}{j-1}\),所以后面那部分可以写成:
发现此时并不好继续优化了,递推也不好递推。我们考虑能否从组合意义的角度出发去将 \(j\) 优化掉。
我们发现有这样一个和式:
我们考虑组合意义。放在网格图上面考虑,那么前者显然是 \((0,0)\to (n,m)\) 只能右或上的方案数,而我们后面则是枚举从第 \(i\) 列移动到第 \(i+1\) 列纵坐标为 \(j\) 的方案数。可以发现两者在 \(i<n\) 的时候显然相等。
那么我们可以带入原式中,化简之后得到为:
现在我们还需要处理前面上界为 \(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\) 的方案数,可以得到:
那么我们可以发现我们每次的 \(p,q\) 是不降的,而 \(n,m\) 是不变的,而我们可以做到 \(\Theta(1)\) 移动一次 \(p,q\),这样均摊下来也是 \(\Theta(n)\) 的。
至此,我们就可以 \(\Theta(n)\) 解决这个问题了。不过正常人谁能想到这个组合意义式子啊😨看来只能打爆bot了😡