2 条题解
-
1
思路显然,代码显然,然后没了注意到
题目要求对 的棋盘染色,使得每个长宽都为偶数的矩形中红色和蓝色数量相同。
显然
一个长宽均为偶数的矩形可以被划分为若干个 的小矩形。如果每个 的子矩形都满足红蓝各半(即 2 红 2 蓝),那么任意偶数长宽的矩形也必然满足条件。 反之,如果存在某个 不满足,则条件不成立。 因此,原条件等价于:棋盘中任意 的子矩形恰好包含 2 个红色和 2 个蓝色。
数学推导
设 表示格子 的颜色。 子矩形红蓝各半 $\iff a_{i,j} + a_{i,j+1} + a_{i+1,j} + a_{i+1,j+1} = 2$。 这等价于两个条件:
- 异或和为 0:$a_{i,j} \oplus a_{i,j+1} \oplus a_{i+1,j} \oplus a_{i+1,j+1} = 0$
- 不全相同:不能全为 0 或全为 1。
由条件 1 可得 $a_{i,j} \oplus a_{i,j+1} = a_{i+1,j} \oplus a_{i+1,j+1}$,即行的差分与行号无关。 设 ,则 可以表示为:
其中 ,()。
代入条件 2,对于任意 子矩形:
- 若 ,则四个值为 。和为 2 。
- 若 ,则四个值为 。和恒为 2。
结论: 合法棋盘必须满足以下两个条件之一(或同时满足):
- 集合 A: 严格交替(即 对所有 成立)。此时 可任意。
- 集合 B: 严格交替(即 对所有 成立)。此时 可任意。
根据容斥原理,合法方案数 。
注意等价性: 和 (即所有 取反)会产生完全相同的棋盘 。因此在计算 和 时,我们只计算 和 的情况,最后结果自然去重。
-
0
color
有一个矩阵 长 ,宽 。矩阵中部分值 确定为 或 。计算满足条件的矩阵个数。
-
原来确定的值,不能改动。矩阵的元素是 。
-
有 $\forall (x_1, y_1, x_2, y_2), x_1 \le x_2,y_1\le y_2 , (x_2-x_1)\bmod 2 = (y_2 - y_1) \bmod 2 =0$ ,满足: $\sum\limits_{i\in [x_1, x_2]}({\sum\limits_{j \in [y_1, y_2]}{A_{i, j}} )} = (x_2 - x_1)(y_2 - y_1) / 2$。
计算这样的矩阵 的个数。
不难发现,考虑全都是
?。确定第一行的点的值。-
如果 ,那么整个 就确定了。且对于 ,否则 。
-
否则,则每一行的选择是独立的,均只能
010101010或者101010101010的形式。
所以原问题做完。
对于一般情况, 。
可以钦定第一行是否存在相邻相同字符?
如果存在,每个 相当于确定了 就确定了,因为 。
如果不存在,那不更简单,直接代入即可。
对于每一行 ,记 表示第 行能否变成
0101010101(0 表示),10101010(1 表示),答案就是666,特殊性质出来了不直接秒了吗??写不出来的直接
AFO。 -
- 1
信息
- ID
- 2800
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 27
- 已通过
- 5
- 上传者