翻硬币
题目
样例
思路
由a[i][j] + row[i] + col[j]推出mp[i][j]-mp[0][j]-mp[i][0]+mp[0][0],边输入边判断。
代码
#include<iostream>
#include<vector>
using namespace std;
vector<int> mp[1000010];
int main()
{
int t,n,m,x;
scanf("%d",&t);
while(t--)
{
int f=0;
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
mp[i].clear();//清空
for(int j=0;j<m;j++)
{
scanf("%d",&x);
mp[i].push_back(x);
if((mp[i][j]-mp[0][j]-mp[i][0]+mp[0][0]+2)%2) f=1;//判断式
}
}
if(f) printf("NO\n");
else printf("YES\n");
}
return 0;
}