hdu 2553 N皇后问题 搜索 回溯法
题目地址: hdu 2553
直接小白书上面的回溯法 但是不知道有多少组数据 所以打一个表~
代码:
#include<iostream> using namespace std; int C[10]; int n; int tot=0; int ans[10]; void dfs(int cur) { if(cur==n) tot++; else for(int i=0;i<n;i++) { int ok=1; C[cur]=i; for(int j=0;j<cur;j++) { if(C[cur]==C[j]||C[cur]-C[j]==cur-j||C[cur]-C[j]==j-cur) { ok=0; break; } } if(ok) dfs(cur+1); } } void pre() { for(int i=1;i<=10;i++) { n=i; tot=0; dfs(0); ans[i]=tot; } } int main() { pre(); while(cin>>n) { if(n==0) break; cout<<ans[n]<<endl; } }
posted on 2014-02-26 18:16 814jingqi的ACM 阅读(87) 评论(0) 编辑 收藏 举报