- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
⼋⼋皇皇后后问问题题的的n种种解解法法
经典的⼋皇后问题:在8×8格的国际象棋上摆放⼋个皇后,使其不能互相攻击,任意两个皇后都不能处于同⼀⾏、同⼀列或同⼀斜线上,
问有多少种摆法。
很早就接触过⼋皇后问题,最近数据结构作业中⼜看到了这个题⽬,仔细研究了⼀波⽹上诸位⼤⽜的博客,发现这个问题居然有这么多有趣
的优化。
1.经典的回溯递归解法:
#includestdio.h
#includeiostream
usingnamespacestd;
//dfs,每⾏只能放⼀个元素,遍历每⾏的每个位置,⽤⼀个⼀维数组记录,最后检查是否符合要求
intans;
intvis[10];
intas(intx){
returnx0?x:-x;
}
oolcheck(intr,intc){
for(inti=1;ir;i++){
if(vis[i]==c)returnfalse;
if(vis[i]-c==r-i||vis[i]-c==i-r)returnfalse;
}
returntrue;
}
voiddfs(intr){
if(r8){
ans++;
return;
}
for(inti=1;i=8;i++){
if(check(r,i)){
vis[r]=i;
dfs(r+1);
vis[r]=0;
}
}
}
main(){
dfs(1);
coutansendl;
}
2.对⾓线检查优化
/*⽤三个数组记录列,左对⾓线,右对⾓线信息,每次判断该位置是否符合要求,只在符合要求位置放置元素。*/
#includeiostream
usingnamespacestd;
constintmaxn=105;
constintmo=100;
typedeflonglongll;
inta[maxn],n=8,ans=0;
ool[maxn],c[maxn],d[maxn];
voidsou(intx){
if(xn){
ans++;
return;
}
for(inti=1;i=n;i++)if(!([i]||c[x+i]||d[x-i+n])){
[i]=c[x+i]=d[x-i+n]=true;
a[x]=i;
sou(x+1);
[i]=c[x+i]=d[x-i+n]=false;
}
}
intmain(){
sou(1);
coutans;
}
3.位运算:
//算法思想与上⼀相同,改⽤三个int来存储信息,采⽤位运算提取合适位置
#includeiostream
#includestdio.h
usingnamespacestd;
intoard;
intn;
intans=0;
voidn_queen(intcol,intld,intrd){
if(col==oard){
ans++;
return;
}
intpos=oard(~(col|ld|rd));
while(pos){
intp=pos(-pos);
pos=pos-p;
n_queen(col|p,(ld|p)1,(rd|p)1);
}
}
intmain(){
cinn;
oard=(1n)-1;
n_queen(0,0,0
您可能关注的文档
- 中科院兰州化物所科技成果——1-3-丙二醇羰基化合成技术.docx
- 北京某小区临水施工方案范文-secret.docx
- 深圳XXX科技-华赛产品培训方案.pptx
- 中国邮政集团有限公司株洲市分公司-企业报告(业主版).pdf
- 口腔牙科医师月工作汇报5篇.docx
- 支气管哮喘个案查房.ppt
- 长江流域水利规划回顾与展望.pdf
- 湖南省病历书写规范培训课件.ppt
- 智能干选系统在老母坡煤矿的研究与应用.docx
- 风电厂事故汇编.docx
- 部编版二年级下册道德与法治 期末考试试卷含答案(最新).docx
- 部编版二年级下册道德与法治 期末考试试卷附答案【夺分金卷】.docx
- 部编版二年级下册道德与法治 期末考试试卷精品(必刷).docx
- 部编版二年级下册道德与法治 期末考试试卷附参考答案【考试直接用】.docx
- 部编版二年级下册道德与法治 期末考试试卷带答案(研优卷).docx
- 部编版二年级下册道德与法治 期末考试试卷实验班.docx
- 部编版二年级下册道德与法治 期末考试试卷含精品答案.docx
- 部编版二年级下册道德与法治 期末考试试卷含完整答案【典优】.docx
- 部编版二年级下册道德与法治 期末考试试卷含答案【培优b卷】.docx
- 部编版二年级下册道德与法治 期末考试试卷及答案.docx
最近下载
- 组织行为学(浙江大学MBA课件).ppt
- 毕业设计论文--卧式离心剥壳机设计 .doc VIP
- 第五单元燃料与二氧化碳素养综合检测教学设计-2024-2025学年九年级化学科粤版上册.docx
- 儿童生存质量癌症模块量表PedsQL3.0文档.pptx VIP
- JGJ-T403-2017:建筑基桩自平衡静载试验技术规程.pdf VIP
- GB50215-2015 煤炭工业矿井设计规范.pdf
- 毕业设计(论文)-炒栗子机设计(全套图纸).doc VIP
- 一种自带钢结构基础的箱变.pdf VIP
- 浙江省金华市婺城区2023-2024学年五年级上学期数学期末试卷.docx VIP
- 黑龙江大学线性代数期末试卷及其详细答案.doc VIP
文档评论(0)