- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
广度优先搜索和度优先搜索训练题
【题目1】N皇后问题(八皇后问题的扩展)
【题目2】排球队员站位问题
【题目3】把自然数N分解为若干个自然数之和。
【题目4】把自然数N分解为若干个自然数之积。
【题目5】马的遍历问题。
【题目6】加法分式分解
【题目7】地图着色问题
【题目8】在n*n的正方形中放置长为2,宽为1的长条块,
【题目9】找迷宫的最短路径。(广度优先搜索算法)
【题目10】火车调度问题
【题目11】农夫过河
【题目12】七段数码管问题。
【题目13】把1-8这8个数放入下图8个格中,要求相邻的格(横,竖,对角线)上填的数不连续.
【题目14】在4×4的棋盘上放置8个棋,要求每一行,每一列上只能放置2个.
【题目15】迷宫问题.求迷宫的路径.(深度优先搜索法)
【题目16】一笔画问题
【题目17】城市遍历问题.
【题目18】棋子移动问题
【题目19】求集合元素问题(1,2x+1,3X+1类)
?
?
【题目】N皇后问题(含八皇后问题的扩展,规则同八皇后):在N*N的棋盘上,放置N个皇后,要求每一横行每一列,每一对角线上均只能放置一个皇后,问可能的方案及方案数。
const max=8;
var i,j:integer;
a:array[1..max] of 0..max;?? {放皇后数组}
b:array[2..2*max] of boolean;?????? {/对角线标志数组}
c:array[-(max-1)..max-1] of boolean; {\对角线标志数组}
col:array[1..max] of boolean; {列标志数组}
total:integer;??? ? {统计总数}
?
procedure output; {输出}
var i:integer;
begin
???? write(No.:4,[,total+1:2,]);
???? for i:=1 to max do write(a[i]:3);write(???? );
???? if (total+1) mod 2 =0 then? writeln;? inc(total);
end;
?
function? ok(i,dep:integer):boolean;? {判断第dep行第i列可放否}
begin
?????? ok:=false;
?????? if ( b[i+dep]=true) and ( c[dep-i]=true) {and (a[dep]=0)} and
????????????? ? (col[i]=true) then?? ok:=true
end;
?
procedure try(dep:integer);
var i,j:integer;
begin
???? for i:=1 to max do??? {每一行均有max种放法}
?????? if? ok(i,dep) then begin
?????? ?a[dep]:=i;
?????? ?b[i+dep]:=false;? {/对角线已放标志}
?????? ?c[dep-i]:=false;? {\对角线已放标志}
?????? ?col[i]:=false;??? {列已放标志}
?????? ?if dep=max then output
????????????? ? else try(dep+1); {递归下一层}
?????? ?a[dep]:=0;???? ?? {取走皇后,回溯}
?????? ?b[i+dep]:=true;?? {恢复标志数组}
?????? ?c[dep-i]:=true;
?????? ?col[i]:=true;
?????? end;
end;
?
begin
???? for i:=1 to max do begin a[i]:=0;col[i]:=true;end;
???? for i:=2 to 2*max do b[i]:=true;
???? for i:=-(max-1) to max-1 do c[i]:=true;
???? total:=0;
???? try(1);
???? writeln(total:,total);
end.
?
【测试数据】
n=8 八皇后问题
?No.[ 1]? 1? 5???? 8? 6? 3? 7? 2? 4????? No.[ 2]? 1? 6? 8???? 3? 7? 4? 2? 5
?No.[ 3]? 1? 7???? 4? 6? 8? 2? 5? 3????? No.[ 4]? 1? 7? 5???? 8? 2 ?4? 6? 3
?No.[ 5]? 2? 4???? 6? 8? 3? 1? 7? 5????? No.[ 6]? 2? 5? 7???? 1?
您可能关注的文档
最近下载
- (2025年版)基孔肯雅热诊疗方案全文PPT课件.ppt
- 天涯神贴——我当道士那些年(完整版).doc VIP
- 十字相乘法因式分解练习100题及答案.docx VIP
- 中医耳鼻喉外治法课件最新完整版本.pptx VIP
- 《互联网信息服务深度合成管理规定》全文学习PPT课件(带内容).pptx VIP
- 两岸经济协定(ECFA)早收清单内容.docx VIP
- 中职语文应用文专题08调查报告.doc VIP
- API 571-2020影响炼油工业固定设备的损坏机理-中文版.pdf
- ANSI-VITA-46.3-2008.pdf VIP
- 《公路隧道照明设计细则》(D70 2-01-2014 )【可编辑】.docx VIP
文档评论(0)