WA 求大佬调试
查看原帖
WA 求大佬调试
807853
I_am_AKed_by_NOI楼主2023/1/13 23:26

RT

#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';
	}
	exit(0);
}
void dfs(int x,int y)
{
	if(a[x][y]!=0)
	{
		if(x==9 && y==9)
		{
			print();
			exit(0);
		}
		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();
					exit(0);
				}
				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];
			row[i][a[i][j]]=1;
			line[j][a[i][j]]=1;
			gong[(i-1)/3*3+(j-1)/3+1];
		}
	}
	dfs(1,1); 
	return 0;
} 
2023/1/13 23:26
加载中...