P8367 [LNOI2022] 盒
第二道黑题,虽然不完全是自己写出来的,但是这并不妨碍我写个题解记录一下,嘻嘻~
题目传送门
题解传送门
Air老师的题解
感觉和这题也是纠缠很久了,大概5月份的时候就第一次讲了这题,但是有0个人听懂了,然后前两天上课的时候又讲了,听懂了,但是不想写,直到听说zhx写了这道,然后下午的时候Air也过了,于是开始看题解学习。
所以先给个题意吧。
然后我们首先考虑当 \(a\) 和 \(b\) 都已经给出的时候,这个式子应该怎么求。
于是有 $$ans=\sum_{i=1}^{n} |suma_i-sumb_i|\times w_i$$
显然这个式子只和前缀和有关,所以我们可以直接求个前缀和,然后吧,就可以把原数组扔掉了。
考虑枚举前i个数 \(b\) 数组的前缀和为 \(j\)
于是我们有 $$ans=\sum_{i=1}^{n} \sum_{j=0}^{suma_n} |suma_i-j|\times w_i \times C_{j+i-1}^{i-1} \times C_{suma_n-j+n-i-1}^{n-i-1}$$
后面两个组合数是哪里来的呢?
其实是前面 \(i\) 个数的和为 \(j\),相当于往前 \(i\) 个盒子里面放上 \(j\) 个小球,盒子可以为空,求总方案数。
然后后面那个组合数同理。于是得到了这个式子。
接下来考虑拆式子。
把外面的i循环扔掉不管,把里面的式子化简成一个 \(O(1)\) 的,就可以了。其实不可以,因为不会化简。
里面的式子显然等价于 $$2\times\sum_{j=0}^{s_i}(s_i-j)\times w_i\times C_{j+i-1}^{i-1}\times C_{S-j+n-i-1}^{n-i-1} + {\sum_{j=0}^{S}(j-s_i)\times w_i\times C_{j+i-1}^{i-1}\times C_{S-j+n-i-1}^{n-i-1}} $$
然后我们考虑化简。
先化简后面那个式子。
即化简 $$\sum_{j=0}^{S} j w_i C_{j+i-1}^{i-1} C_{S-j+n-i-1}^{n-i-1}-s_i \sum_{j=0}^{S}w_i C_{j+i-1}^{i-1} C_{S-j+n-i-1}^{n-i-1}$$
前面那个式子,里面乘个j非常不好化简,所以考虑去掉。
由组合数问题可知 \(j\times C_{i+j-1}^{j}=i\times C_{i+j-1}^{i}\)
所以我们把j给提出来。
于是有 $$i\sum_{j=0}^{S} w_i C_{j+i-1}^{j-1} C_{S-j+n-i-1}^{n-i-1}-s_i \sum_{j=0}^{S}w_i C_{j+i-1}^{i-1} C_{S-j+n-i-1}^{n-i-1}$$
这组合数里面有个j-1令人感到非常心理不适可能因为我心里变态吧所以我们考虑给这玩意去掉。
回到原式,发现当j等于0时,原式的结果为0,所以可以直接去掉。
于是得到了 $$i\sum_{j=0}^{S-1} w_i C_{j+i}^{j} C_{S-j+n-i-2}^{n-i-1}-s_i \sum_{j=0}^{S}w_i C_{j+i-1}^{i-1} C_{S-j+n-i-1}^{n-i-1}$$
接下来给这个式子赋予几何意义。
首先考虑一个问题,从(0,0)走到(n,m)有多少种方案。
显然答案是 \(C_{n+m}^{n}\)
换一个角度考虑这个问题,考虑从(i,j)向右移动,那么可以得到答案为 \(\sum_{j=0}^{m} C_{i+j}^{j} C_{n-i+m-j}^{n-i}\)
所以有等式 $$C_{n+m}^{n} = \sum_{j=0}^{m} C_{i+j}^{j} C_{n-i+m-j}^{n-i}$$
于是我们就可以划掉前面的那个Σ,变成一个 \(O(1)\) 的式子啦。
于是有 $$iC_{S-1+n-1}^{n-1}-s_{i} C_{S+n-1}^{n-1}$$
非常完美,然后前面的式子本质上和这个是相同的,我们也是同样地划一划,然后就可以啦。
当然,我是不会承认其实是自己不想写了的。