标签:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<stack> #include<math.h> #include<queue> using namespace std; #define INF 0x3f3f3f3f #define N 8 int g=0; char a[N][N]; int qq(int x,int y) { for(int i=0; i<4; i++) { if(a[i][y]==a[x][y]&&x!=i) return 0; if(a[x][i]==a[x][y]&&y!=i) return 0; } int xx=x,yy=y; if(x%2) x--; if(y%2) y--; for(int i=x; i<=x+1; i++) { for(int j=y; j<=y+1; j++) { if(a[i][j]==a[xx][yy]&&(xx!=i&&yy!=j)) return 0; } } return 1; } void q(int ans) { if(g==1) return ; if(ans==16) { for(int i=0; i<4; i++) { for(int j=0;j<4;j++) printf("%c",a[i][j]); printf("\n"); } g=1; return ; } int x=ans/4; int y=ans%4; if(a[x][y]==‘*‘) { for(int j=1; j<=4; j++) { a[x][y]=j+‘0‘; if(qq(x,y)) { q(ans+1); } a[x][y]=‘*‘; } } else q(ans+1); } int main() { int T,t=1; scanf("%d",&T); while(T--) { g=0; for(int i=0; i<4; i++) scanf("%s",a[i]); printf("Case #%d:\n",t++); q(0); } return 0; }
HDU 5547 4*4数独 http://acm.split.hdu.edu.cn/status.php
标签:
原文地址:http://www.cnblogs.com/a719525932/p/5804079.html