专栏文章

题解:P14022 [ICPC 2024 Nanjing R] Bingo

P14022题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minkeioy
此快照首次捕获于
2025/12/02 03:51
3 个月前
此快照最后确认于
2025/12/02 03:51
3 个月前
查看原文
min-max 容斥。先排序,从小到大填进去。
A1,A2,AnA_{1},A_{2},\dots A_{n} 为每一行被填满的时候的最大的值(即最后一个被填进去的那个数);B1,B2,,BnB_{1},B_{2},\dots,B_{n} 为 每一列被填满的时候的最大的值。那么一种方案的答案就是
min({A1,A2,,An}{B1,B2,Bn})=S{A1,A2,,An}T{B1,B2,Bn}(1)S+T+1max(ST)\min(\{A_1,A_2,\dots,A_n\}\cup\{B_1,B_2,\dots B_n\})\\=\sum_{S\subset\{A_1,A_2,\dots,A_n\}}\sum_{T\subset\{B_1,B_2,\dots B_n\}}(-1)^{|S|+|T|+1}\max(S\cup T)
你发现这个 max(ST)\max(S\cup T) 在做的事情就是选定某些特定的行和列,求出这些格子里最后被填进去的数是什么。容易发现这个值只和被考虑到的格子数量有关,而这个格子数量只和 S,T|S|,|T| 有关。因此我们可以改写这个式子为:
i=0nj=0m(1)i+j+1(ni)(mj)f(im+jnij)\sum_{i=0}^n\sum_{j=0}^m(-1)^{i+j+1}\binom{n}{i}\binom{m}{j}f(im+jn-ij)
f(x)f(x) 表示考虑 xx 个格子。容易发现选中 iijj 列,会考虑到 im+jnijim+jn-ij 个格子。
这个式子复杂度已经对了,现在唯一的问题是算 f(t)f(t)。考虑枚举最后一个填进去的数是什么:
f(t)=i=1nmai(i1t1)t!(nmt)!f(t)=\sum_{i=1}^{nm}a_i\binom{i-1}{t-1}t!(nm-t)!
这个式子的意义就是第 ii 个数是最有一个填进去的,前 i1i-1 个数里挑 t1t-1 填到剩下 t1t-1 个格子里,这 tt 个数和剩下的 nmtnm-t 个数分别可以随便排序,所以乘上阶乘。
这个式子可以差卷积。做完了。

评论

0 条评论,欢迎与作者交流。

正在加载评论...