0分求条
  • 板块P1784 数独
  • 楼主lihaoda
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/14 12:32
  • 上次更新2025/1/14 17:24:51
查看原帖
0分求条
1024914
lihaoda楼主2025/1/14 12:32
#include<bits/stdc++.h>
#define I return
#define love 0
#define AnJiuZhou ;

using namespace std;

int n=9;
int a[10][10];//填数独情况
bool cell[4][4][10];//每个宫情况  
bool row[10][10],col[10][10];//行、列情况
int flag;

void dfs(int x,int y){
	if(flag) return;
	if(x==9){
		for(int i=0;i<n;++i){
			for(int j=0;j<n;++j){
				cout << a[i][j] << ' ';
			}
			cout << '\n';
		}
		flag=1;
		return;
	}
	if(a[x][y]!=0){//
		if(y==8) dfs(x+1,0);
		else dfs(x,y+1);
		return;
	}
	for(int i=1;i<=9;++i){//
		if(col[y][i]==1||row[x][i]==1||cell[x/3][y/3][i]==1) continue;
		a[x][y] =i;
		col[y][i]=1;
		row[x][i]=1;
		cell[x/3][y/3][i]=1;
		if(y==8) dfs(x+1,0);
		else dfs(x,y+1);
		col[y][i]=0;
		row[x][i]=0;
		cell[x/3][y/3][i]=0;
	}
	if(flag) return;
}

int main(){
	for(int i=0;i<n;++i){
		for(int j=0;j<n;++j){
			int p;
			cin >> p;
			if(p!=0){
				a[i][j]=p;
				cell[i/3][j/3][p]=1;
				row[i][p]=1;
				col[j][p]=1;
			}
		}
	}
	dfs(0,0);
	I love AnJiuZhou
}

0分,样例第2行出现3个8,求助

2025/1/14 12:32
加载中...