1 条题解
-
0
#include<bits/stdc++.h> using namespace std; char a[1000][1000],bj[9]={'1','2','3','4','5','6','7','8','9'}; int b[1000][1000],n,sum,x,g; int pd(int x,int y){ for(int i=1;i<=n;i++){ if(b[x][y]==a[x][i])return 0; } for(int i=1;i<=n;i++){ if(b[x][y]==a[i][y])return 0; } return 1; } void dfs(int x,int y,int t){ if(t==x){ sum++; return; } if(b[x][y]==0){ if(y==n)dfs(x+1,1,t); else dfs(x,y+1,t); } else{ for(int i=0;i<n;i++){ b[x][y]=bj[i]; int s=pd(x,y); if(s==0)continue; else{ if(y==n)dfs(x+1,1,t+1); else dfs(x,y+1,t+1); } } return; } } int main(){ cin>>n; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; if(a[i][j]=='*'){ b[i][j]++; x++; a[i][j]='0'; } } } dfs(1,1,0); cout<<sum; return 0; }
- 1
信息
- ID
- 688
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 8
- 标签
- 递交数
- 12
- 已通过
- 10
- 上传者