博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
堡垒问题(深搜、回溯_子集树)
阅读量:6250 次
发布时间:2019-06-22

本文共 1647 字,大约阅读时间需要 5 分钟。

时限:

1000ms 内存限制:10000K 总时限:3000ms

描述:

城堡是一个4×4的方格,为了保卫城堡,现需要在某些格子里修建一些堡垒。城堡中的某些格子是墙,其余格子都是空格,堡垒只能建在空格里,每个堡垒都可以向上下左右四个方向射击,如果两个堡垒在同一行或同一列,且中间没有墙相隔,则两个堡垒都会把对方打掉。问对于给定的一种状态,最多能够修建几个堡垒。

输入:

每个测例以一个整数n(1<=n<=4)开始,表示城堡的大小。接下来是n行字符每行n个,‘X’表示该位置是墙,‘.’表示该位置是空格。n等于0标志输入结束。

输出:

每个测例在单独的一行输出一个整数:最多修建堡垒的个数。

输入样例:

4

.X..
....
XX..
....
2
XX
.X
3
.X.
X.X
.X.
3
...
.XX
.XX
4
....
....
....
....
0

输出样例:

5

1
5
2
4

#include
char Arr[4][4]={
0};int n,max=0;void checkmax(){ int sum=0; for(int i=0;i
max)//取置堡垒个数最多的 max=sum;}int canplace(int m)//判断是否能将Arr[m/n][m%n]置为堡垒{ int row,col,r,c; row=m/n; col=m%n;//行//列 r=row; c=col; //保存行列值 if(Arr[row][col]=='X') return 0; //是城墙,不能置为堡垒 while(col>=0 &&Arr[row][col]=='.') col--;//对Arr[row][col]所在行的判断:Arr[row][col]同一行中只能是 出界或遇到城墙"X"或遇到堡垒"1"而结束 if(col<0 ||(col>=0 &&Arr[row][col]=='X')) //Arr[row][col]同一行中出界或遇到城墙(同一行满足要求)而结束,才判断Arr[row][col]所在列 { while(row>=0 &&Arr[row][c]=='.') row--;//对Arr[row][col]所在列的判断:与行判断相同 if(row<0 ||(row>=0 &&Arr[row][c]=='X') ) return 1; } return 0;//Arr[row][col]所在行或列不满足要求}void search(int m){ if(m==n*n) checkmax(); else { if(canplace(m))//满足将Arr[m/n][m%n]置为堡垒的条件 { Arr[m/n][m%n]='1';//将Arr[m/n][m%n]置为堡垒 search(m+1); Arr[m/n][m%n]='.';//恢复,不将Arr[m/n][m%n]置为堡垒 search(m+1); } else search(m+1);//不将Arr[m/n][m%n]置为堡垒 }}int main(){ int i,j; scanf("%d",&n);//输入城堡的大小n getchar();///!!!! while(n!=0) { for(i=0;i

 

转载于:https://www.cnblogs.com/IThaitian/archive/2012/07/11/2585778.html

你可能感兴趣的文章
利用java mail发送邮件(转)
查看>>
Mybatis(六) Spring整合mybatis
查看>>
教您用Xshell快速连接远程电脑
查看>>
怎样阅读源码
查看>>
RxJava系列之中的一个 初识Rxjava
查看>>
智能巡检资料
查看>>
cocos2dx-3.1 接入多盟广告sdk+Android (2)
查看>>
Android Eclipse 导入 AS Gradle AAR 库手冊
查看>>
腾讯实习生三面
查看>>
CTFcrackTools-V3 - 一款旨在帮助 CTFer 在 CTF 中发挥作用的一个框架
查看>>
weblogic隐藏版本号教程(10.3.6为例)
查看>>
Html input 常见问题
查看>>
storm笔记:Storm+Kafka简单应用
查看>>
关于宽带接两台路由,并且第二台需要关闭DHCP的设置
查看>>
linux下拷贝隐藏文件
查看>>
jQuery源码分析学习--资料收集--更新中
查看>>
ubuntu 里切换 gcc,g++ 的版本
查看>>
SEO:查找网站的百度收录情况和如何让百度快速收录
查看>>
<html>
查看>>
Hibernate关联映射(多对一 --- many-to-one)
查看>>