姨 社论

https://www.cnblogs.com/SoyTony/p/15869968.html

题面

\(n\times n\) 每个方格上随机地填入 \(1\)\(m\) 之间的正整数(每个方格填的数互不相同),然后随机地选出 \(k\) 个数字,把它们出现在棋盘上的方格涂黑 .

设有 \(R\) 行被整行涂黑,\(C\) 列被整列涂黑,则得到 \(2^{R+C}\) 分 .

求期望得分 .

题解

枚举 \(R,C\) 钦定后算贡献,然后加起来就完了 .

显然 \(R\) 行,\(C\) 列总共有 \(t = nR+nC-RC\) 个格子(注意此时 \(t\) 其实是关于 \(R,C\) 的函数,而不是独立的变量) .

考虑 \(2^{R+C}\) 的组合意义,即子集数量 .

考虑到每个状态的超集贡献特别好算,于是把每个状态的超集贡献加起来就顺便把 \(2^{R+C}\) 干掉力 .

也就是目前的柿子为

\[\sum_R\sum_C \dbinom nR\dbinom nCf(R,C) \]

那俩组合数是 \(R,C\) 所对应的状态数,因为答案相同于是可以直接大力乘上,\(f\) 是概率 .

显然 \(f\) 是古典概型,于是可以直接除:

\[f(R,C) = \dfrac{\dbinom{m-t}{k-t}}{\dbinom mk} \]

于是答案就是

\[\sum_R\sum_C \dfrac{\dbinom nR\dbinom nC\dbinom{m-t}{k-t}}{\dbinom mk} \]

这个似乎大力算就好了吧 .


SoyTony 解法:

根据众所周知的吸收恒等式

\[\boxed{\dbinom nm = \dfrac nm\dbinom{n-1}{m-1}} \]

于是 \(f\) 可以递推

\[\dfrac{\dbinom{m-t}{k-t}}{\dbinom mk} = \dfrac{\dbinom{m-t+1}{k-t+1}}{\dbinom mk}\cdot\dfrac{m-t+1}{k-t+1} \]

然后剩下的组合数都是形如 \(\dbinom n{啥啥啥}\) 的,于是也可以递推 .

递推是线性的,但是枚举 \(R,C\)\(O(n^2)\) 的,感觉没啥区别 .


时间复杂度 \(O(n^2)\) .

posted @ 2022-02-08 18:59  Jijidawang  阅读(33)  评论(0编辑  收藏  举报
😅​