题目链接:http://codeforces.com/contest/1119/problem/C
题意:给两个同型的由0、1组成的矩阵A、B,问A能否经过指定的操作变成B,指定操作为在矩阵A中选定一个子矩阵(行数,列数均>=2),该子矩阵的四个角的值能翻转,即1->0,0->1。
思路:结论--只要A、B的所有行的值之和同奇偶,所有列的值之和同奇偶就输出Yes,否则输出No。证明:经过操作(1,1,x,y) (x>1,y>1)可将A中非第一行、第一列的元素变成和B一致,即Axy=Bxy。然后因为变化的过程每一行、每一列的奇偶不变,所以此时A、B的第一行、第一列的值自然也相等。
AC代码:
1 #include2 using namespace std; 3 4 int n,m,rs[2][505],cs[2][505],tmp; 5 6 int main(){ 7 scanf("%d%d",&n,&m); 8 for(int i=0;i<2;++i) 9 for(int j=0;j