你的任務是,對于給定的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]); } } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/100442.html
標籤:其他
上一篇:hdu1716--全排列(dfs+有重復數字+輸出格式)
下一篇:馬走日的解法(dfs)
