题目名称:
Engineer Artem
题目大意:
有T组数据,每组数据有一个n行m列的矩阵,希望通过一种操作使得矩阵任意相邻的数字不同,这个操作只能让某一个数字加1,可以操作无限次,但是每一个方格只能操作一次。
思路:
一个数字一定可以由奇数变成偶数或者由偶数变成奇数,我们可以让坐标x+y为偶数的格子放偶数,x+y为奇数的格子放奇数。即:如果x+y为偶数的格子上的数为奇数,就让它+1;如果x+y为奇数的格子上的数为偶数,就让它+1,这样就实现的奇偶相间,也保证了相邻不等。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1005;
int a[maxn][maxn],T,n,m;
int main(){
cin>>T;
while(T--){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if((i+j)%2==0){
if(a[i][j]%2)a[i][j]++;
}
else{
if(a[i][j]%2==0)a[i][j]++;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j]<<' ';
}
cout<<endl;
}
}
return 0;
}