T1 选彩笔(rgb)
观察到值域较小,考虑静态值域三维偏序,人话:三维前缀和。
三维前缀和的式子:get(i,j,k,x,y,z)=s[i][j][k]-s[i][j][z-1]-(s[i][y-1][k]-s[i][y-1][z-1])-(s[x-1][j][k]-s[x-1][y-1][k]-s[x-1][j][z-1]+s[x-1][y-1][k-1]);
,直接几何意义推的,但是高维前缀和有通式。然后二分 check
即可。
T2 兵蚁排序(sort)
由样例可知,一个一个换过来冲突最少,从前往后依次处理每一位,发现不同就往后找这个数第一次出现的位置,这里具有单调性,它不能后面的就一定不能,一路换过来即可。
T3 人口局 DBA(dba)
首先有数位 DP,卡空间,所以用递推形式,前缀和优化可以做到 \(n^3\),其实对于没有限制的情况就是解一个形如 \(\sum x_i=s\) 方程的非负整数解数量。这个可以直接用容斥求,设
单次 \(\mathcal{O}(n)\) 肯定还是不行,发现我们求的式子很相似,只有 \(s\) 不同,且它是一个连续的区间,注意到这个之后不妨推下式子,设 \(ans_{p,s}\) 表示这个到 \(p\) 位,还剩下 \(s\) 的值,如下
\[\begin{aligned} ans_{p,s}&=\sum_{i=0}^{a_p-1}\sum_{k=0}^{m-p}(-1)^k{m-p\choose k}{s-i-kn+m-p-1\choose m-p-1}\\ &=\sum_{k=0}^{m-p}(-1)^k{m-p\choose k}\sum_{i=0}^{a_p-1}{s-i-kn+m-p-1\choose m-p-1}\\ &=\sum_{k=0}^{m-p}(-1)^k{m-p\choose k}\left({s-kn+m-p\choose m-p}-{s-a_p-kn+m-p\choose m-p}\right) \end{aligned} \]因为 \(s\) 连续,所以把组合数拆开之后就互相抵消了,消去了一个和式,然后就能 \(\mathcal{O}(n^2)\) 直接判了。
T4 银行的源起(banking)
不会,抽空改。
总结
笑点解析:打的比 CSP 高,实际上只打了 220pts,退役分。
标签:前缀,NOIP,sum,kn,三维,choose,模拟,式子 From: https://www.cnblogs.com/Ishar-zdl/p/18533176