hdu 2553 N皇后问题 经典搜索,DFS解法

#include <stdio.h>#define MAX 15int n , ans = 0 ,res[MAX],map[MAX];void DFS(int row){if(row == n){ans++ ;return ;}for(int i = 0 ; i < n ; ++i){bool flag = false ;map[row] = i ;for(int j = 0 ; j < row ; ++j){if(map[row]==map[j]||map[row]-row==map[j]-j||map[row]+row==map[j]+j){flag = true ;break ;}}if(!flag){DFS(row+1) ;}}}int main(){for(int i = 1 ; i <= 10 ; ++i){n = i ;ans = 0 ;DFS(0) ;res[i] = ans ;}while(~scanf("%d",&n) && n){printf("%d\n",res[n]) ;}return 0 ;}

,只有一条路不能选择——那就是放弃的路;

hdu 2553 N皇后问题 经典搜索,DFS解法

相关文章:

你感兴趣的文章:

标签云: