[关闭]
@yang12138 2018-07-02T12:53:51.000000Z 字数 1342 阅读 1100

codeforces 997C

未分类


Question:
一个的网格,给每个格子染上红蓝黄三种颜色之一,问有多少种染色方案能使染色后的网格至少存在一行或一列的颜色相同。

Solution:
考虑容斥:


这里表示容斥的系数,表示有行和列颜色分别一样.
先考虑的计算,这里直接上结论:

证明:
显然容斥的系数只和有关.
一个结论:,在时成立.
下面用数学归纳法证明:
如果,显然成立.
如果,显然成立.
时:
如果是奇数:

转换一下:

显然有
如果是偶数:

转换一下:

显然有
综上得证.

下面考虑的计算:
如果时,假设


否则:

那么的情况对答案的贡献是:


这个预处理阶乘和逆元之后直接用快速幂算即可.
的情况对答案的贡献是:

最后一步转换由二项式定理得来.

总时间复杂度

题目链接:http://codeforces.com/contest/997/problem/C
参考代码:http://codeforces.com/contest/997/submission/39856715

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注