zoukankan      html  css  js  c++  java
  • n皇后问题(dfs-摆放问题)


    你的任务是,对于给定的N,求出有多少种合法的放置方法。 

    Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。Sample Input

    1
    8
    5
    0

    Sample Output

    1
    92
    10

    注意:
    每一行必须摆放
    a[t]=i 表示第t行,在第i列摆放皇后
    预处理一下,否则超时
    代码:
    import java.util.Scanner;
    
    public class Main{
    //        static int n,cnt;
    //        static int a[]=new int[15];
    //        static boolean check(int t){
    //                for(int i=0;i<t;i++)
    //                        if(a[i]==a[t] || Math.abs(i-t)==Math.abs(a[i]-a[t]))
    //                            return false;
    //                return true;
    //        }
    //        static void dfs(int t){
    //                if(t==n ) cnt++;
    //                for(int i=0;i<n;i++){
    //                        a[t]=i;
    //                        if(check(t)) dfs(t+1);
    //                }
    //        }
    //        public static void main(String[] args) {
    //                Scanner scan=new Scanner(System.in);
    //                while(scan.hasNext()){
    //                        n=scan.nextInt();
    //                        if(n==0) break;
    //                        cnt=0;
    //                        dfs(0);
    //                        System.out.println(cnt);
    //                }
    //        }
        
        public static void main(String[] args) {
                Scanner scan=new Scanner(System.in);
                int a[]={1,0,0,2,10,4,40,92,352,724};
                while(scan.hasNext()){
                        int n=scan.nextInt();
                        if(n==0) break;
                        System.out.println(a[n-1]);
                }
        }
    }
  • 相关阅读:
    专题三--1005
    专题三--1009
    专题三--1017
    背包九讲
    专题三--1003
    专题三--1004
    专题三--1015
    [洛谷P1220]关路灯
    [洛谷P1776]宝物筛选
    [USACO14JAN]Recording the Moolympics
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12238757.html
Copyright © 2011-2022 走看看