```cpp
#include<bits/stdc++.h>
using namespace std;
bool row[101][101],line[101][101],gong[101][101];
int a[101][101];
void print()
{
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
{
cout<<a[i][j]<<' ';
}
cout<<'\n';
}
}
void dfs(int x,int y)
{
if(a[x][y]!=0)
{
if(x==9 && y==9)
{
print();
}
else if(y==9)
{
dfs(x+1,y);
}
else
{
dfs(x,y+1);
}
}
else
{
for(int i=1;i<=9;i++)
{
if(!row[x][i] && !line[y][i] && !gong[(x-1)/3*3+(y-1)/3+1][i])
{
row[x][i]=1;
line[y][i]=1;
gong[(x-1)/3*3+(y-1)/3+1][i]=1;
a[x][y]=i;
if(x==9 && y==9)
{
print();
}
else if(y==9)
{
dfs(x+1,1);
}
else
{
dfs(x,y+1);
}
row[x][i]=0;
line[y][i]=0;
gong[(x-1)/3*3+(y-1)/3+1][i]=0;
a[x][y]=0;
}
}
return ;
}
}
int main()
{
memset(row,0,sizeof(row));
memset(line,0,sizeof(line));
memset(gong,0,sizeof(gong));
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)
{
cin>>a[i][j];
if(a[i][j]>0)
{
row[i][a[i][j]]=1;
line[j][a[i][j]]=1;
gong[(i-1)/3*3+(j-1)/3+1][a[i][j]]=1;
}
}
}
dfs(1,1);
return 0;
}
```
by I_am_AKed_by_NOI @ 2023-01-13 23:31:14
第二个是改了以后的,但还是 WA。
by I_am_AKed_by_NOI @ 2023-01-13 23:31:41