P1784数独,帮忙纠正。
  • 板块学术版
  • 楼主Supor__Shoep
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/2/11 19:23
  • 上次更新2023/10/28 08:51:45
查看原帖
P1784数独,帮忙纠正。
439177
Supor__Shoep楼主2022/2/11 19:23
#include<bits/stdc++.h>
using namespace std;
int s[15][15];
void bfs(int sx,int sy)
{
	if(sy>9)
	{
		sx++;
		sy=1;
	}
	if(sx>9)
	{
		for(int i=1;i<=9;i++)
		{
			for(int j=1;j<=9;j++)
			{
				cout<<s[i][j]<<' ';
			}
			cout<<endl;
		}
		exit(0);
	}
	if(s[sx][sy])	bfs(sx,sy+1);
	else
	{
		bool vis[10]={0};
		for(int i=1;i<=sy;i++)	vis[s[sx][i]]=1;
		for(int i=1;i<=sx;i++)	vis[s[i][sy]]=1;
		int shang1=(sx-1)/3+1,shang2=(sy-1)/3+1;
		int fx=(shang1-1)*3+1,fy=(shang2-1)*3+1;
		for(int i=fx;i<=fx+2;i++)
		{
			for(int j=fy;j<=fy+2;j++)
			{
				vis[s[i][j]]=1;
			}
		}
		for(int i=1;i<=9;i++)
		{
			if(!vis[i])
			{
				s[sx][sy]=i;
				bfs(sx,sy+1);
				s[sx][sy]=0;
			}
		}
	}
}
int main()
{
	for(int i=1;i<=9;i++)
	{
		for(int j=1;j<=9;j++)
		{
			cin>>s[i][j];
		}
	}
	bfs(1,1);
	return 0;
}

我暂时找不到漏洞,但是它就是有错误,请各位大佬找一下错误。谢谢!!!

2022/2/11 19:23
加载中...