A - 粟粟的书架
分两个问题。
Part 1:R=1R=1R=1,C≤5×105C \le 5 \times 10^5C≤5×105.
可以二分分界值,判断大于等于这个值的所有值之和是否大于等于 HHH。
注意到 pi,j≤1000p_{i,j} \le 1000pi,j≤1000,所以不用二分,直接暴力枚举,并计算个数和总和即可。
O(m×pmax×log2C)O(m\times p_{\max}\times \log_2 C)O(m×pmax×log2C)
Part2:R,C≤200R,C \le 200R,C≤200.
同理,但离线下来。
从大到小枚举分界值,暴力算即可。
好像两个都可以这样算,O((R×C+m)×pmax)O((R\times C+m) \times p_{\max})O((R×C+m)×pmax),由于 3s,常数较小,应该能过。
B - 璀灿光华
感觉只要构建出来这个图形,直接暴力求解即可。
C - 染色
枚举出现 SSS 次的颜色,并统计方案。
设 fn,kf_{n,k}fn,k 表示长度为 nnn 的序列,用 kkk 种颜色,且每种颜色出现次数都不是 SSS 的方案数。
答案则是:∑i=0mfn−i×S,m−i×Ami×Cni×S×gi×wi\sum_{i=0}^m f_{n-i\times S,m-i}\times A_{m}^{i}\times C_{n}^{i\times S}\times g_i \times w_i∑i=0mfn−i×S,m−i×Ami×Cni×S×gi×wi.
其中 gi=Ci×SS×gi−1g_i=C_{i\times S}^S \times g_{i-1}gi=Ci×SS×gi−1
关键就是求这个 fff.
发现这个 fff 在 n−i×S,m−in-i\times S,m-in−i×S,m−i 才有用,即 x0+i×Sx_0+i\times Sx0+i×S,y0+iy_0+iy0+i。
重新设 fif_ifi 表示原 fx0+i×S,y0+if_{x_0+i\times S,y_0+i}fx0+i×S,y0+i。
fi=∑j=1i−1fj×gi−j×Cijf_i=\sum_{j=1}^{i-1} f_j\times g_{i-j}\times C_i^jfi=∑j=1i−1fj×gi−j×Cij。
卷积,NTT优化。没时间打了~
好像是错的,看了题解,要用二项式反演。
二项式反演
感觉其实是将类似"恰好"转化成"任意",假如令 fnf_nfn 表示"恰好"为 nnn 的特定结构的方案数,gng_ngn 为"任意"特定结构的方案数。
显然 gn=∑i=1nCni×fig_n= \sum_{i=1}^n C_n^i\times f_ign=∑i=1nCni×fi。
则有 fn=∑i=1nCni×(−1)n−i×gif_n= \sum_{i=1}^n C_n^i\times (-1)^{n-i} \times g_ifn=∑i=1nCni×(−1)n−i×gi。
它还有其它形式对于 gn=∑i=nNCin×fig_n=\sum_{i=n}^N C_i^n\times f_ign=∑i=nNCin×fi,则有 fn=∑i=nNCni×(−1)i−n×gif_n= \sum_{i=n}^N C_n^i\times (-1)^{i-n} \times g_ifn=∑i=nNCni×(−1)i−n×gi
不会证明。
回到这道题,还是一样考虑恰好为 iii 个 SSS 的方案数,设其为 fif_ifi,用 gig_igi 表示大于等于 iii 个的方案数。
gi=Cmi×AnS×i(S!)i×(m−i)n−S×ig_i=C_m^i \times \frac{A_n^{S\times i}}{(S!)^i} \times (m-i)^{n-S\times i}gi=Cmi×(S!)iAnS×i×(m−i)n−S×i.
也有 gi=∑j=inCji×fjg_i=\sum_{j=i}^n C_j^i\times f_jgi=∑j=inCji×fj
反演得,fi=∑j=in(−1)j−i×Cji×gjf_i=\sum_{j=i}^n (-1)^{j-i}\times C_j^i\times g_jfi=∑j=in(−1)j−i×Cji×gj.
可用NTT优化卷积。