zoukankan      html  css  js  c++  java
  • 八皇后的详细解答,纯手打,求推荐!!!

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 using namespace std;
     6 int a[9][9];//将隐式树转化成显式树,即变成数据结构中的八叉树,寻找每一条合适的路径
     7 int count=0;//计数器
     8 //初始化数组a
     9 void init()
    10 {
    11     for(int i=1; i<=8; i++)
    12         for(int j=1; j<8; j++)
    13             a[i][j]=0;
    14 }
    15 //输出一组八皇后的值
    16 void output()
    17 {
    18     for(int i=1; i<9; i++)
    19     {
    20         for(int j=1; j<9; j++)
    21             printf("%d",a[i][j]);
    22         printf("
    ");
    23     }
    24     printf("**********
    ");
    25 }
    26  //检查每一个点能否放置,即是否符合规则
    27 int check(int i,int k)
    28 {
    29     int t=0;
    30     for(int j=1; j<=i-1; j++)
    31     {
    32         for(int j1=1; j1<9; j1++)
    33             if(abs(j-i)==abs(k-j1)&&a[j][j1]==1)//在写线上有值
    34                 t=1;
    35         if(a[j][k]==1)//在垂直线上有值
    36             t=1;
    37     }
    38     if(t==0)
    39         return 1;
    40     else
    41         return 0;
    42 
    43 }
    44 void try1(int i)//运用了回溯法,递归,和深度优先搜索,对每一行开始
    45 {
    46     for(int k=1; k<=8; k++)//对每一列开始检查
    47     {
    48         if(check(i,k)==1)//如果符合,进行dfs
    49         {
    50             a[i][k]=1;
    51             if(i==8){
    52                 output();
    53                 count++;//记录一组八皇后的值
    54             }
    55             else
    56                 try1(i+1);//逐步递归,直至i==8
    57             a[i][k]=0;// 清理现场
    58         }
    59     }
    60 }
    61 int main()
    62 {
    63     try1(1);//从1开始
    64     cout<<count<<endl;
    65     return 0;
    66 }

     忘记初始化了- -

  • 相关阅读:
    Topcoder 11351 TheCowDivOne
    Topcoder 14531 Softmatch
    Topcoder 13503 ConnectingGame
    CS Academy Round#5 E.Binary Matching
    洛谷 P5896 [IOI2016]aliens
    P5020 [NOIP2018 提高组] 货币系统
    P1868 饥饿的奶牛
    P3131 [USACO16JAN]Subsequences Summing to Sevens S
    P3959 [NOIP2017 提高组] 宝藏
    2021 Grade 8 whk Final-Test.(Summer) 复**况 & 文明观猴
  • 原文地址:https://www.cnblogs.com/calmwithdream/p/5294406.html
Copyright © 2011-2022 走看看