题意:。。。
典型的深搜,就是处理对角线的时候有些意外。
代码(注释掉的就是深搜,因为我不打表的话 TL):
#include<stdio.h>
int c[11], n, ans;
int res[10] = {1, 0, 0, 2, 10, 4, 40, 92, 352, 724};
/*void dfs(int cur)
{
if(cur == n) {
++ans;
return ;
}
int i, j, flag;
for(i = 0; i < n; i ++){
flag = 1;
c[cur] = i;
for(j = 0; j < cur; j ++){
if(c[cur]==c[j]|| cur - c[cur]== j - c[j] || cur + c[cur]== j + c[j]){
flag = 0;
break;
}
}
if(flag) dfs(cur+1);
}
}*/
int main()
{
while(scanf("%d", &n), n){
//ans = 0;
//dfs(0);
printf("%d\n", res[n-1]);
}
}
题目链接:
点击打开链接