国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

1140_八皇后

2019-11-14 12:03:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
// 1140_八皇后.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。//題目1140:八皇后//時(shí)間限制:1 秒內(nèi)存限制:32 兆特殊判題:否提交:908解決:557//題目描述://會(huì)下國(guó)際象棋的人都很清楚:皇后可以在橫、豎、斜線上不限步數(shù)地吃掉其他棋子。如何將8個(gè)皇后放在棋盤上(有8 * 8個(gè)方格),使它們誰(shuí)也不能被吃掉!這就是著名的八皇后問(wèn)題。 //對(duì)于某個(gè)滿足要求的8皇后的擺放方法,定義一個(gè)皇后串a(chǎn)與之對(duì)應(yīng),即a=b1b2...b8,其中bi為相應(yīng)擺法中第i行皇后所處的列數(shù)。已經(jīng)知道8皇后問(wèn)題一共有92組解(即92個(gè)不同的皇后串)。//給出一個(gè)數(shù)b,要求輸出第b個(gè)串。串的比較是這樣的:皇后串x置于皇后串y之前,當(dāng)且僅當(dāng)將x視為整數(shù)時(shí)比y小。//輸入://第1行是測(cè)試數(shù)據(jù)的組數(shù)n,后面跟著n行輸入。每組測(cè)試數(shù)據(jù)占1行,包括一個(gè)正整數(shù)b(1 <= b <= 92)//輸出://輸出有n行,每行輸出對(duì)應(yīng)一個(gè)輸入。輸出應(yīng)是一個(gè)正整數(shù),是對(duì)應(yīng)于b的皇后串。//樣例輸入://2//1//92//樣例輸出://15863724//84136275//來(lái)源://2008年北京大學(xué)軟件所計(jì)算機(jī)研究生機(jī)試真題#include "stdafx.h"#include "iostream"using namespace std;int result[100][10];int cnt;void eightQueen(int i,int j,int visit[9]){ if(i<=8 && j<=8){ int l; for(l =1;l<i;l++){ if(j==visit[l] || ((i-j)==(l-visit[l])) || ((i+j)==(l+visit[l]))) break; } if(l == i){ visit[i] = j; if(i == 8){ for(int k = 1;k<=8;k++) result[cnt][k] = visit[k]; cnt++; } else eightQueen(i+1,1,visit); } eightQueen(i,j+1,visit); //不管是(i,j)這個(gè)點(diǎn)不能放皇后,或者是回溯回來(lái),都執(zhí)行 }}int main(){ int n; int visit[9]; cnt = 1; eightQueen(1,1,visit); while(cin>>n){ while(n--){ int x; cin>>x; for(int k=1;k<=7;k++) cout<<result[x][k]; cout<<result[x][8]<<endl; } } return 0;}/*1.visit[][]數(shù)組如果用來(lái)表示哪些點(diǎn)可以放皇后的話,導(dǎo)致回溯的時(shí)候無(wú)法確認(rèn)哪些點(diǎn)要改回去,所以 visit數(shù)組還是應(yīng)該用來(lái)記錄哪些點(diǎn)已經(jīng)存放皇后 *///char result[93][9];//int cnt;////void eightQueen(int i,int j,int visit[9][9],int count,char temp[9]){// if (visit[i][j]){// count++;// if(count==8){// cnt++;// for(int k=0;k<7;k++)// result[cnt][k] = temp[k];// result[cnt][7] = j;// }// else{// temp[count-1] = j + '0';// for(int k = 1;k<=8;k++){// visit[k][j] = visit[i][k] = 0;// if(i+k<=8 && j-k>=1)// visit[i+k][j-k] = 0;// if(i+k<=8 && j+k<=8)// visit[i+k][j+k] = 0;// if(i-k>=1 && j-k>=1)// visit[i-k][j-k] = 0;// if(i-k>=1 && j+k<=8)// visit[i-k][j+k] = 0;// }// for(int k =1;k<=8;k++)// if(i+1<=8)// eightQueen(i+1,k,visit,count,temp);// count--;// for(int k = 1;k<=8;k++){// visit[i][k] = 1;// if(k>i) // visit[k][i] = 1;// if(i+k<=8 && j-k>=1)// visit[i+k][j-k] = 1;// if(i+k<=8 && j+k<=8)// visit[i+k][j+k] = 1;// if(i-k>=1 && j-k>=1)// visit[i-k][j-k] = 1;// if(i-k>=1 && j+k<=8)// visit[i-k][j+k] = 1;// }// if(j<7)// eightQueen(i,j+1,visit,count,temp);//// }// }// //}////int main()//{// int n;// int count = 0;// char temp[9];// int visit[9][9];// for(int i = 1;i<=8;i++)// for(int j= 1;j<=8;j++)// visit[i][j] = 1;// cnt = 0;// eightQueen(1,1,visit,count,temp);// while(cin>>n){// while(n--){// int x;// cin>>x;// cout<<result[x]<<endl;// }// }// return 0;//}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 舒城县| 广东省| 扎鲁特旗| 和硕县| 商河县| 仙居县| 新乡市| 苏尼特右旗| 常熟市| 辉南县| 云安县| 特克斯县| 定南县| 舞阳县| 寻甸| 房山区| 溆浦县| 遵化市| 山丹县| 康平县| 遵义市| 定襄县| 铜梁县| 临邑县| 崇礼县| 原平市| 阆中市| 靖宇县| 宜昌市| 基隆市| 苏尼特左旗| 连南| 密山市| 新宾| 扶风县| 潮州市| 宝兴县| 英山县| 泽州县| 鄄城县| 双流县|