因为是否放在这个入门专题里的所以就没怎么想直接就做了。
但是超时了,于是去网上看题解去学DFS剪枝,但是神奇的是剪枝之后居然还是超时。
由于题目的N是小于等于10的
所以。。
#include <cstring> #include <cstdio> int num[10] = {1,0,0,2,10,4,40,92,352,724}; int n; int main() { while(~scanf("%d",&n) && n!=0) { printf("%d\n",num[n-1]); } return 0; }
如果不喜欢这样的骚操作。
当然推荐的还是楼天城的位运算剪枝。真的很神奇。想去了解的还是自行百度。