求有多少个$n\times m$的矩阵,使得每行每列异或值都是$0$。
Data Range:$T\leq 10^5,1\leq n,m\leq 10^9$
Solution
先声明一下,$(n,m)$表示$n\times m$矩阵的答案,这里假定$n\leq m$,因为$(n,m)=(m,n)$。
不知道有没有人在看到这题的时候想到了NOIP 2018的填数游戏,按照这个思路,可以写一个爆搜跑一下小数据,这里记录一下我得到的小数据的答案:
$(2,2)=2,(2,3)=4,(2,4)=8,(2,5)=16,(2,6)=32\cdots$
$(3,3)=16,(3,4)=64,(3,5)=256,(3,6)=1024\cdots$
$(4,4)=512,(4,5)=4096,(4,6)=32768\cdots$
$(5,5)=65536\cdots$
首先考虑$(n,m)\div (n,m-1)$,把这个值记为$\operatorname{grow}(n)$,于是有:
$\operatorname{grow}(2)=2,\operatorname{grow}(3)=4,\operatorname{grow}(4)=8,\operatorname{grow}(5)=16\cdots$
所以$\operatorname{grow}(n)=2^{n-1}$。
接下来算$(n,n)$,有:
$(2,2)=2,(3,3)=16,(4,4)=512,(5,5)=65536$。
乍一看,没什么规律,所以将这些式子变个形:
$(2,2)=2^1,(3,3)=2^4,(4,4)=2^9,(5,5)=2^{16}\cdots$
啊哈!这样就有规律啦qwq!
于是就有$(n,n)=2^{(n-1)^2}$
综上,可以得出$(n,m)\equiv 2^{(n-1)^2}\times(2^{n-1})^{m-n}$。
于是就可以用快速幂做啦qwq。
但是这样子$\texttt{Subtask 3}$会TLE,所以考虑优化。
不是有欧拉定理吗?
所以说可以把$(n-1)^2$模个$\varphi(998244353)=998244352$,就可以完结撒花啦qwq!
Code
1 |
|