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

    题目描述

           在n×n格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再n×n的棋盘上放置n个后,任何2个皇后不妨在同一行或同一列或同一斜线上。

    输入输出格式

    输入描述:

    给定棋盘的大小n (n ≤ 13)

    输出描述:

    输出整数表示有多少种放置方法。

    输入输出样例

    输入样例#1:

    8

    输出样例#1:

    92

    思路

    搜索。

    代码

    #include<stdio.h>
    int a[200]={0},b[200]={0},c[200]={0},d[200],p=0;
    int search(int n,int s)
    {
        int i;
        for(i=1;i<=n;i++)
        {
            if(a[i]==0&&b[i+s]==0&&c[s-i+n-1]==0)
            {
                a[i]=1;b[i+s]=1;c[s-i+n-1]=1;d[s]=i;
                if(s==n)
                    p++;
                else
                 search(n,s+1);
                a[i]=0;b[i+s]=0;c[s-i+n-1]=0;
            }
        }
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        search(n,1);
        if(p==0)
          printf("no solute!");
        else
          printf("%d",p);
        return 0;
    }
    View Code
  • 相关阅读:
    requirejs 第一个实例
    ionic + cordova 环境搭建
    免安装mysql配置
    ConcurrentHashMap
    volatile和synchronized
    zookeeper集群安装
    题目
    Nginx
    CountDownLatch
    自己总结
  • 原文地址:https://www.cnblogs.com/soul-love/p/5310668.html
Copyright © 2011-2022 走看看