1 条题解
-
1
#include<bits/stdc++.h> using namespace std; int a[1001][1001]; bool h[1001][1001],l[1001][1001],s[1001][1001]; int f(int x,int y){ if(x<=3){ if(y<=3)return 1; if(y<=6)return 2; if(y<=9)return 3; } if(x<=6){ if(y<=3)return 4; if(y<=6)return 5; if(y<=9)return 6; } if(x<=9){ if(y<=3)return 7; if(y<=6)return 8; if(y<=9)return 9; } } void dfs(int x,int y){ if(x==10){ for(int i=1;i<=9;i++){ for(int j=1;j<=9;j++){ cout<<a[i][j]; } cout<<endl; } exit(0); } if(a[x][y]){ if(y+1<=9)dfs(x,y+1); else dfs(x+1,1); } else{ for(int i=1;i<=9;i++){ if(!h[x][i]&&!l[y][i]&&!s[f(x,y)][i]){ a[x][y]=i; h[x][i]=l[y][i]=s[f(x,y)][i]=true; if(y+1<=9)dfs(x,y+1); else dfs(x+1,1); a[x][y]=0; h[x][i]=l[y][i]=s[f(x,y)][i]=false; } } } } int main(){ for(int i=1;i<=9;i++){ for(int j=1;j<=9;j++){ char d; cin>>d; if(d!='.'){ a[i][j]=d-'0'; h[i][d-'0']=l[j][d-'0']=s[f(i,j)][d-'0']=true; } } }dfs(1,1); return 0; }
信息
- ID
- 6420
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 5
- 已通过
- 3
- 上传者