日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(回溯1)八皇后

發布時間:2025/3/12 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (回溯1)八皇后 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述
在國際象棋棋盤上放置八個皇后,要求每兩個皇后之間不能直接吃掉對方。即任意兩個皇后都不能處于同一行、同一列或同一斜線上
輸入
無輸入。
輸出
按給定順序和格式輸出所有八皇后問題的解(見Sample Output)。
樣例輸入
樣例輸出
No. 1
1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
No. 2
1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 0
No. 3
1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0
No. 4
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
No. 5
0 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0
No. 6
0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0
No. 7
0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 0
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0
No. 8
0 0 1 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
No. 9
0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0
…以下省略

//1700:八皇后問題 /* 1、首先分析輸出樣例的順序選第一行,選第二行按行的順序說明是指定了列,讓我們來填行 */ #include <iostream> using namespace std; //用來存儲方案 ,下標都是從1開始 int a[9][9]; int visRow[9]; //行 int visLeftIncline[17];//左斜線 使用的時候 row+column int visRightIncline[16]; //右斜線,使用的時候row-column+8 int ansCount=0;void init(){}void print(){cout<<"No. "<<(++ansCount)<<endl;for(int i=1;i<=8;i++){for(int j=1;j<=8;j++){cout<<a[i][j]<<" ";}cout<<endl;}} void search(int column){if(column>8){//if(ansCount>=5) return;print();//cout<< ansCount<<endl;}else{for(int row=1;row<=8;row++){if(!visRow[row]&&!visLeftIncline[row+column]&&!visRightIncline[row-column+8]){visRow[row]=1;visLeftIncline[row+column]=1;visRightIncline[row-column+8]=1;a[row][column]=1;search(column+1);//找下一列//回溯 visRow[row]=0;visLeftIncline[row+column]=0;visRightIncline[row-column+8]=0;a[row][column]=0; }}} }int main(){init(); search(1);return 0; }

總結

以上是生活随笔為你收集整理的(回溯1)八皇后的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。