uva-167 - The Sultan's Successors-八皇后-回溯
来源:互联网 发布:python微信开发框架 编辑:程序博客网 时间:2024/06/04 23:26
一道变异的八皇后问题,八皇后问题是很经典的回溯题目;
利用L,R,LL,RR数组标记点的横排,竖排,左斜,右斜有没有皇后。
从i=1,开始找,如果找到i=8以后,看一下统计的和,取其中的最大值。
#include<iostream>#include<cstdio>#include<algorithm>#include<stdlib.h>#include<string.h>using namespace std;int map[10][10];int l[8];int r[8];int ll[20];int rr[20];int sum=0;int sum_max;void get(int i){ int j; if(i>8) { if(sum>sum_max) sum_max=sum; return ; } for(j=1;j<=8;j++) { if(l[i]&&r[j]&&ll[i-j+8]&&rr[i+j]) { l[i]=0; r[j]=0; ll[i-j+8]=0; rr[i+j]=0; sum+=map[i][j]; get(i+1); l[i]=1; r[j]=1; ll[i-j+8]=1; rr[i+j]=1; sum-=map[i][j]; } }}int main(){ int T,i,j; scanf("%d",&T); while(T--) { for(i=1;i<=8;i++) { for(j=1;j<=8;j++) { scanf("%d",&map[i][j]); } } memset(l,1,sizeof(l)); memset(r,1,sizeof(r)); memset(ll,1,sizeof(ll)); memset(rr,1,sizeof(rr)); sum=0; sum_max=0; get(1); printf("%5d\n",sum_max); } return 0;}
- uva-167 - The Sultan's Successors-八皇后-回溯
- 167 - The Sultan's Successors 八皇后(回溯法)
- The Sultan's Successors uva+八皇后
- UVA - 167 The Sultan's Successors(回溯 八皇后问题改编)
- UVa 167 - The Sultan's Successors, 八皇后问题
- UVa 167 The Sultan's Successors (八皇后问题)
- UVA-167The Sultan's Successors(八皇后问题)
- UVA The Sultan's Successors (八皇后问题)
- 167 - The Sultan's Successors(八皇后问题(回溯))
- 167 - The Sultan's Successors(****)八皇后问题
- 167 - The Sultan's Successors(搜索:八皇后)
- UVA 167 The Sultan's Successors(八皇后问题变形)
- uva 167 - The Sultan's Successors(典型的八皇后问题)
- 【权值八皇后】uva 167——The Sultan's Successors
- uva 167 The Sultan's Successors(回溯)
- UVa 167 - The Sultan's Successors 递归回溯
- 167 - The Sultan's Successors 回溯
- UVa 167 - The Sultan's Successors
- 【库函数源码剖析系列】(4) strlen
- Java网络编程总结
- 反射实例2
- PostgreSQL服务过程中的那些事二:Pg服务进程处理简单查询一:开启事务
- 强静态类型
- uva-167 - The Sultan's Successors-八皇后-回溯
- AJAX最基础---使用XmlHttpRequest
- 锐捷网络常考的位运算符题
- 计算机视觉网络资料
- 2012-9-25
- 关于12个球,其中劣质球重量未知不知是轻或者重,天平称三次找出劣质球
- Rspec笔记
- 做一个淡淡的女子
- (转)BMP文件格式详解(BMP file format)[图文解说]