数独可能情况
输入T组数据,每组数据为一个3×3的9宫格,其中0为没有填入的数字,如果该位置上下左右的数不为填入的数的相邻的数(比如填入的数是4,相邻的数就是3和5),就可以把这个数填进去,问每组的合法数独总共有多少。
输入
2
1 8 5
4 6 3
0 2 0
1 3 5
4 6 8
2 7 0
输出
2
0
思路
dfs的方式对当前局面进行更新,如果最终所有的数都填完了(cnt为0),就说明此时的局面为合法局面,将该局面加入到一个集合ST中,最后ST的大小就是每一组的结果。
#include<bits/stdc++.h>
using namespace std;
int T;
int a[5][5],ans;
bool st[10];
set<string> ST;
string printOut()
{
string res="";
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
res+=a[i][j]+'0';
}
return res;
}