Problem - D - Codeforces
题意:
给定一个数独,让你更改最多9格,使其变成anti-数独,即每一行,每一列,每一个3*3大格都存在一个数的出现次数>=2
思路:
构造题,要不是根据题目隐含的算法或思想去特殊化,要不就是观察样例的性质来特殊化,要不就是很典的特殊化
这道题就是观察样例的性质,直接改就行
Code:
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mxn=2e5+10;
const int mod=1e9+7;
string s[10];
void solve(){
for(int i=1;i<=9;i++) cin>>s[i],s[i]=" "+s[i];
s[1][7]=s[1][6];
s[2][2]=s[2][1];
s[3][6]=s[3][5];
s[4][9]=s[4][8];
s[5][3]=s[5][2];
s[6][5]=s[6][4];
s[7][8]=s[7][7];
s[8][1]=s[8][2];
s[9][4]=s[9][5];
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++) cout<<s[i][j];
cout<<'\n';
}
}
signed main(){
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int __=1;cin>>__;
while(__--)solve();return 0;
}