ZOJ-1949 行列和均偶数
1949:矩阵的每一行每一列的和都是偶数称为parity。 判定是否符合。如不符合是否可以改动一个数字符合。
Sample Input
4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1
4
1 0 1 0
0 0 1 0
1 1 1 1
0 1 0 1
4
1 0 1 0
0 1 1 0
1 1 1 1
0 1 0 1
0
Sample Output
OK
Change bit (2,3)
Corrupt
思路:分别进行行列检查。如果可以改动,则只有一行和只有一列不满足。否则不能改为符合。
#include<stdio.h>#include<iostream>using namespace std;int matrix[100][100];int main(){int dim;int row;int col;int sum;bool rowchg;bool colchg;bool canchg;while(1){canchg=true;rowchg=false;colchg=false;row=-1;col=-1;cin>>dim;if(dim==0)break;for(int i=0;i<dim;i++)for(int j=0;j<dim;j++)cin>>matrix[i][j];//check rowfor(int i=0;i<dim;i++){sum=0;for(int j=0;j<dim;j++){sum+=matrix[i][j];}if(sum%2==1){if(rowchg){canchg=false;break;}rowchg=true;row=i+1;}}//check colfor(int i=0;i<dim;i++){sum=0;for(int j=0;j<dim;j++){sum+=matrix[j][i];}if(sum%2==1){if(colchg){canchg=false;break;}colchg=true;col=i+1;}}if(row==-1&&col==-1)printf("OK\n");else if(canchg&&rowchg&&colchg)printf("Change bit (%d,%d)\n",row,col);elseprintf("Corrupt\n");}}