hdu-2553 N皇后(深搜)

来源:互联网 发布:网络软文兼职 编辑:程序博客网 时间:2024/06/07 07:07

原题

思路:以列深搜, 看每一行是否符合条件, 注意打表,否则超时。

#include<iostream>#include<algorithm>using namespace std;int n, cnt;int line[15], ans[11];void dfs(int r){if(r==n+1){cnt++;return;}for(int i=1; i<=n; i++){int flag=1;for(int j=1; j<r; j++){if(line[j]==i || abs(r-j)==abs(i-line[j])){flag=0;break;}}if(flag){line[r]=i;dfs(r+1);}}}int main(){for(n=1; n<=10; n++){cnt=0;dfs(1);ans[n]=cnt;}while(cin>>n && n){cout<<ans[n]<<endl;}return 0;}