姨 社论
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)\) .
以下是博客签名,正文无关
本文来自博客园,作者:Jijidawang,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/15872513.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ