#p1784求调
  • 板块学术版
  • 楼主lys_99
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/13 19:50
  • 上次更新2024/3/13 21:21:28
查看原帖
#p1784求调
1026187
lys_99楼主2024/3/13 19:50
#include<bits/stdc++.h>
using namespace std;
int n,sd[19][19],h[19][19],l[19][19],g[19][19],cnt;
void dfs(int x,int y){
	if(cnt<=5){
		cout<<endl;
		cnt++;
	    for(int i=0;i<9;i++){
		    for(int j=0;j<9;j++){
			    cout<<sd[i][j]<<" ";
		    }
		    cout<<endl;
		    
	    }
	    cout<<endl;
	}
	
	//if(x==9){
	//	for(int i=0;i<9;i++){
	//		for(int j=0;j<9;j++){
	//			cout<<sd[i][j]<<" ";
	//		}
	//		cout<<endl;
	//	}
	//	return;
	//}
	if(y==9){
		dfs(x+1,0);
	}
	if(sd[x][y]!=0){
		dfs(x,y+1);
	}
	else
		for(int i=1;i<=9;i++){
		//	if(x==1&&y==3&&i==2){
		//		cout<<h[x][i]<<l[y][i]<<g[x/3*3+y/3][i]<<endl;
		//	}
			if(!h[x][i]&&!l[y][i]&&!g[x/3*3+y/3][i]){
				h[x][i]=1;
				l[y][i]=1;
				g[x/3*3+y/3][i]=1;
				sd[x][y]=i;
				dfs(x,y+1);
				h[x][i]=0;
				l[y][i]=0;
				g[x/3*3+y/3][i]=0;
				sd[x][y]=0;
			}
		}
	
}
int main(){
    for(int i=0;i<9;i++){
		for(int j=0;j<9;j++){
			cin>>sd[i][j];
			h[i][sd[i][j]]=1;
			l[i][sd[i][j]]=1;
			g[i/3*3+j/3][sd[i][j]]=1;
		}
	}
	dfs(0,0);
	return 0;
}

P1784 数独

2024/3/13 19:50
加载中...