- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PASCAL基础训练题目及题解
【execans.2 为深度优先搜索,广度优先搜索类,及技巧性题目题解】【题目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:=trueend;
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?
您可能关注的文档
- 串口通信本质.doc
- 方程及不等式应用题.docx
- 我教研教改之路.doc
- 第七章 服装店企划书.doc
- 2012会计继续教育《资产管理内部控制》练习题答案.docx
- 发散型思维技巧训练教材.doc
- 详解Java_Singleton(单例)模式好处.docx
- 二进制及三进制的那些趣题.docx
- 数据库 期末复习 大纲 有答案哦.doc
- (整)第三章 社会和其构成要素.doc
- DB44_T 2611-2025 城市排水管网有毒有害气体监测与风险分级管理技术标准.pdf
- DB44_T 2612-2025 竞赛类科普活动策划与实施服务规范.pdf
- DB43_T 2947-2024 烟草种子质量控制规程.pdf
- DB37_T 4836-2025 煤矿风量实时监测技术要求.pdf
- 叉车防撞系统,全球前22强生产商排名及市场份额(by QYResearch).docx
- 超滤膜,全球前18强生产商排名及市场份额(by QYResearch).docx
- DB62T 4172-2020 玉米品种 酒623规范.pdf
- DB62T 4160-2020 在用真空绝热深冷压力容器综合性能在线检测方法.pdf
- DB62T 4164-2020 辣椒品种 酒椒1号.pdf
- DB62T 4133-2020 公路隧道地质超前预报机械能无损探测技术规程.pdf
文档评论(0)