链接
题意:
给出的矩阵,我们需要使得 每个位置,上下左右与其不相等,进行的操作是可以使得一些数加1,只能加一次。
分析:
本来是找标签FFT找的,一看过得7000多,当时感觉人特别多,后来看完题才知道,是个构造,不是FFT,也可能可以用FFT,但是,又更简单的方法,那句是构造。
我们要求上面左右不相等,那么我们可以构造出一个网状结构。奇偶交替出现。
ll n,m;
ll dp[110][110];
void solve()
{
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>dp[i][j];
}
}
for(int i=1;i<=n;i++){
int flag=i%2;
for(int j=1;j<=m;j++){
if((flag-j)%2) {
if(dp[i][j]&1) cout<<dp[i][j]<<" ";
else cout<<dp[i][j]+1<<" ";
}else {
if(dp[i][j]&1) cout<<dp[i][j]+1<<" ";
else cout<<dp[i][j]<<" ";
}
}
cout<<endl;
}
}