2 条题解

  • 1
    @ 2026-10-21 16:52:39

    思路显然,代码显然,然后没了

    注意到

    题目要求对 n×mn \times m 的棋盘染色,使得每个长宽都为偶数的矩形中红色和蓝色数量相同。

    显然

    一个长宽均为偶数的矩形可以被划分为若干个 2×22 \times 2 的小矩形。如果每个 2×22 \times 2 的子矩形都满足红蓝各半(即 2 红 2 蓝),那么任意偶数长宽的矩形也必然满足条件。 反之,如果存在某个 2×22 \times 2 不满足,则条件不成立。 因此,原条件等价于:棋盘中任意 2×22 \times 2 的子矩形恰好包含 2 个红色和 2 个蓝色。

    数学推导

    设 ai,j∈{0,1}a_{i,j} \in \{0, 1\} 表示格子 (i,j)(i, j) 的颜色。 2×22 \times 2 子矩形红蓝各半 $\iff a_{i,j} + a_{i,j+1} + a_{i+1,j} + a_{i+1,j+1} = 2$。 这等价于两个条件:

    1. 异或和为 0:$a_{i,j} \oplus a_{i,j+1} \oplus a_{i+1,j} \oplus a_{i+1,j+1} = 0$
    2. 不全相同:不能全为 0 或全为 1。

    由条件 1 可得 $a_{i,j} \oplus a_{i,j+1} = a_{i+1,j} \oplus a_{i+1,j+1}$,即行的差分与行号无关。 设 dj=ai,j⊕ai,j+1d_j = a_{i,j} \oplus a_{i,j+1},则 ai,ja_{i,j} 可以表示为:

    ai,j=ri⊕cja_{i,j} = r_i \oplus c_j

    其中 ri=ai,0r_i = a_{i,0},cj=d0⊕d1⊕⋯⊕dj−1c_j = d_0 \oplus d_1 \oplus \dots \oplus d_{j-1}(c0=0c_0 = 0)。

    代入条件 2,对于任意 2×22 \times 2 子矩形:

    • 若 cj=cj+1c_j = c_{j+1},则四个值为 x,x,y,yx, x, y, y。和为 2   ⟹  x≠y  ⟹  ri≠ri+1\implies x \neq y \implies r_i \neq r_{i+1}。
    • 若 cj≠cj+1c_j \neq c_{j+1},则四个值为 x,1−x,y,1−yx, 1-x, y, 1-y。和恒为 2。

    结论: 合法棋盘必须满足以下两个条件之一(或同时满足):

    • 集合 A:cc 严格交替(即 cj≠cj+1c_j \neq c_{j+1} 对所有 jj 成立)。此时 rr 可任意。
    • 集合 B:rr 严格交替(即 ri≠ri+1r_i \neq r_{i+1} 对所有 ii 成立)。此时 cc 可任意。

    根据容斥原理,合法方案数 =∣A∣+∣B∣−∣A∩B∣= |A| + |B| - |A \cap B|。

    注意等价性: (r,c)(r, c) 和 (rˉ,cˉ)(\bar{r}, \bar{c})(即所有 ri,cjr_i, c_j 取反)会产生完全相同的棋盘 ai,ja_{i,j}。因此在计算 ∣A∣|A| 和 ∣B∣|B| 时,我们只计算 c0=0c_0=0 和 r0=0r_0=0 的情况,最后结果自然去重。

    信息

    ID
    2800
    时间
    1000ms
    内存
    128MiB
    难度
    6
    标签
    (无)
    递交数
    27
    已通过
    5
    上传者