题意 :
将一个 9 × 9 9×9 9×9 的数独方阵改为反数独方阵,即行、列、 9 9 9 个 3 × 3 3×3 3×3 的方阵中都至少有两个数相同,最多改动 9 9 9 个数。
一开始没注意需要每个小格子里面还得满足,这样的话就按照
1 1
2 4
3 7
4 2
5 5
6 8
7 3
8 6
9 9
把这些格子里面的随便改变即可。
AC代码:
const int N = 2e5 + 10;
int a[50][50];
int pos[10]={0,1,4,7,2,5,8,3,6,9};
int main()
{
int t;
sd(t);
while (t--)
{
rep(i, 1, 9)
rep(j, 1, 9)
scanf("%1d", &a[i][j]);
rep(i, 1, 9)
{
if (a[i][pos[i]] == 1)
a[i][pos[i]] = 2;
else
a[i][pos[i]]--;
}
rep(i, 1, 9)
{
rep(j, 1, 9)
printf("%d", a[i][j]);
printf("\n");
}
}
return 0;
}