zoukankan      html  css  js  c++  java
  • N皇后问题

    常规N皇后解决问题过程:

    (1)针对所给问题,定义问题的解空间;
    (2)确定易于搜索的解空间结构;
    (3)以深度优先的方式搜索解空间,并且在搜索过程中用剪枝函数避免无效搜索

    主要算法实现如下:

     1 void even1(int n,int *p){
     2     int i;
     3     for (i=1;i<=n/2;i++)
     4         p[i-1]=2*i;
     5     for (i=n/2+1;i<=n;i++)
     6         p[i-1]=2*i-n-1;
     7 }
     8 void even2(int n,int *p){
     9     int i;
    10     for (i=1;i<=n/2;i++)
    11         p[i-1]=(2*i+n/2-3)%n+1;
    12     for (i=n/2+1;i<=n;i++)
    13         p[i-1]=n-(2*(n-i+1)+n/2-3)%n;
    14 }
    15 void odd(int n,int *p){
    16     generate(n-1,p),p[n-1]=n;
    17 }
    18 void generate(int n,int *p){
    19     if (n&1)
    20         odd(n,p);
    21     else if (n%6!=2)
    22         even1(n,p);
    23     else
    24         even2(n,p);
    25 }
  • 相关阅读:
    爬取 qq,酷我,千千VIP音乐下
    window10虚拟机安装
    爬取qq,酷我,千千VIP音乐 上
    BEAUTIFUL SOUP
    多线程爬取与存储基础
    CODEFORCE ROUND #625 DIV2
    【POJ
    【POJ
    【POJ
    【POJ
  • 原文地址:https://www.cnblogs.com/dinghing154/p/2621318.html
Copyright © 2011-2022 走看看