CF1917E 解题报告

CF1917E 解题报告

简要题意

给出一个大小为 \(n*n (n \bmod 2 = 0)\) 的矩阵,区间初始是由全 \(0\) 构成。请往其中填充 \(k\)\(1\),使得每行每列的 \(\text{XOR}\) 值相等,或报告无解。

赛时分析

首先易证当 \(k\) 为奇数时,一定不存在可行解。因为每行的 \(\text{XOR}\) 值相同,所有每行的 \(1\) 的个数相同,因此 \(k\) 一定为偶数。

然后我们想到当 \(k\)\(4\) 的倍数时,肯定有解,因为我们可以不停地用 \(2 \times 2\) 的全 \(1\) 矩阵填满它。

但是当 \(k\) 满足 $k \equiv 2 \pmod 4 $ 时,是否存在解,不知道。

正解

考虑极限情况,如果当 \(k=2\)\(k=n^2-2\) 时,当且仅当 \(n=2\) 时有解。

然后是最重要的部分:除了上面这两种情况,其他满足 $k \equiv 2 \pmod 4 $ 的 \(k\) 都可以通过先放 \((1,1)\)\((1,2)\)\((2,1)\)\((2,3)\)\((3,3)\)\((3,2)\),然后再用剩下 \((k-6)\)\(1\) 去按之前方法填充矩阵。

特别地,如果 \(k=n^2-6\),我们可以再在上述方案的基础上,再填充 \((2,2)\)\((2,4)\)\((4,2)\)\((4,4)\) 来满足条件。

posted @ 2025-07-15 15:06  XiaoZi_qwq  阅读(5)  评论(0)    收藏  举报