CF1270I [* god]
给定一个大小为 (2^k imes 2^k) 的矩阵 (A),给定点集 (S) 为 ({(x_i,y_i)}),定义一次操作为选定 (p,q,w) 然后给所有 (A[(x_i+p)mod 2^k][(y_i+q)mod 2^k]) 异或上 (w)
求最少操作多少次使得矩阵归 (0),(kle 9,|S|le 99) 且 (|S|) 为奇数。
Solution
神仙题。
我们重新定义矩阵乘法为:
(A imes B=C) 即 (C[x][y]=igoplus_{i=0}^{2^k-1}igoplus_{j=0}^{2^k-1} a[i][j] imes b[(i-x)mod 2^k][(j-y)mod 2^k])
同时定义矩阵 (F) 为 (F[x_i][y_i]=1)
不难发现一组 (p,q) 只会操作一次。
不难发现我们的目标变为找到一组矩阵 (Z) 使得 (F imes Z=A),且 (Z) 中非 (0) 元素尽可能少。
在此运算规则下,仍然存在逆元即 (I[0][0]=1)
考虑 (F^{-1}) 如何得到,我们可以证明他即为 (F^{2^k-1})
考虑 (F^{2}),只有 (F[2x_imod 2^k][2y_imod 2^k]) 可能存在值,因为 (F[x_i+x_j][y_i+y_j]) 会被 (i+j) 和 (j+i) 异或两次。
所以不难发现 (F^{2^k}) 只有 (F[0][0]) 可能为 (1)
又因为初始只有奇数个 (1),所以平方之后也会有奇数个 (1),所以 (F[0][0]=1)
所以 (F imes Z=A),即 (Z=A imes F^{2^k-1}=A imes prod_{i=0}^{k-1} F^{2^i})
目前一次乘法的复杂度为 (mathcal O((4^k)^2)),但是由于 (F^{i}) 中至多只有 (t) 个 (1),所以其实是可以做到 (mathcal O(4^k imes t)) 的。
综上,本题可以做到 (mathcal O(ktcdot 4^k))