题意:
给你一个(2^n)*(2^n)的矩阵,矩阵元素只有0,1两种颜色。
定义一个元素的价值是
1.如果一个矩阵都是一种颜色,那么他的价值为1
2.如果一个矩阵不纯色,那么他的价值是把他分成4个(2^(k-1))*(2^(k-1))
(假设原来的大小是(2^k)*(2^k))的矩阵的价值之和+1
然后有q个操作,一开始矩阵都是0颜色,
每一次操作,你需要把t=0,把第x行都取反;t=1,把第x列取反。
然后输出当前矩阵的价值
(n<=20,q<=1e6)
解析:
这道题真的磨了2天......
一开始想了一天,想不出来,看了别人的题解
结论:我们称依题目给出的公式计算矩阵A的得分时递归处理到的矩阵均称为A的“子矩阵”,记这些矩阵中有n个为不“纯色”的矩阵,则矩阵A的得分为4n+1。
那么我们然后就只要找(2^n)*(2^n)的里面有多少不纯色的矩阵就可以了。
然后剩下的就是一些套路了...(反正我是看不出来,模仿大佬的口气)
因为他这里行数达到2^n次,并且每一次都对行/列进行操作,那么我们的突破点也一定是对行/列进行的。
然后注意纯色矩阵是有一些性质的:
一个矩阵是纯色矩