这道题目是容斥原理的典型例题,主要体现了一种逆向思维。
如果我们试图直接考虑在某种情况下,每一行和每一列都“不完全为空”,会发现相对比较难以计算。此时可以反其道而行之,先把所有的情况算出来,然后再减去不合法的情况,会更好办些,这里就体现了容斥原理的思想。
使用容斥原理解决本题,大体上可以分为两种解决思路:
一、直接对整个棋盘进行容斥。
不考虑任何限制,每个格子就有黑和白两种状态,因此整个棋盘共有 2RC 种可能的状态。
接下来,我们考虑一个 3*3 的棋盘,不妨把第一行完全为空的状态集合记为 A ,则显然还剩下 6 个格子,对它们没有什么限制,每个都有黑与白两种可能,因此有
ans=2RC−(|A∪B