2553–Hdu–N皇后問題

來源:互聯網
上載者:User
N皇后問題

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5563    Accepted Submission(s): 2518


Problem Description在N*N的方格棋盤放置了N個皇后,使得它們不相互攻擊(即任意2個皇后不允許處在同一排,同一列,也不允許處在與棋盤邊框成45角的斜線上。
你的任務是,對於給定的N,求出有多少種合法的放置方法。

 


Input共有若干行,每行一個正整數N≤10,表示棋盤和皇后的數量;如果N=0,表示結束。 


Output共有若干行,每行一個正整數,表示對應輸入行的皇后的不同放置數量。 


Sample Input

1850
 


Sample Output

19210#include<iostream>using namespace std;#include"stdio.h"#define MAX 12int vst[MAX];               int cnt[MAX];int ans;int n;bool flag;//vst[i] 表示第i個皇后的列數//ans 存放的是當前方案的個數,用於複製給ans[i],n表示皇后迴圈個數的變數//flag用來表示該位置能不能放皇后,能的話就為truevoid DFS(int row)     //深搜            {    int i,j;    if(row==n+1)     //如果所放皇后個數大於要求個數n,則該方案可行,ans+1      ans++;           else        for(i=1;i<=n;i++)//該皇后之前的也需要進行迴圈,先選定一個位置看下面能放幾個,如果不夠,這個也要換        {            flag=true;             vst[row]=i;              for(j=1;j<row;j++) //將該皇后之前的各個皇后都與之進行比較,看是否滿足條件            {                if(vst[row]==vst[j]||vst[row]-row==vst[j]-j||vst[row]+row==vst[j]+j)      //                 {//如果在同一斜線或同一列就不能放                    flag=false;                    break;                     }            }            if(flag)                DFS(row+1);// 如果能放,考慮放置下一個皇后,row+1        }        }int main(){    int i;    for(n=1;n<11;n++)//´從1~10先算出各個方案,下面直接輸出    {        ans=0;        DFS(1);//每次都是從1開始搜尋        cnt[n]=ans;// cnt[i]表示放i個皇后的可行方案個數    }     while(scanf("%d",&n)!=EOF&&n)    {        printf("%d\n",cnt[n]);    }    return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.