题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2

解题报告:

这里的深搜有一点不同,就是,在深搜每一个点时,都要深搜每一个点,就是一个完全二叉树。

借鉴:http://blog.csdn.net/zxy_snow/article/details/5952668

#include <stdio.h>
#include <iostream>
#include <stdlib.h> using namespace std; int visit[][],mmax,n,cou;
///visit 里面为0,表示没有东西,1表示有碉堡,2表示有墙;
///cou,计数当下放的碉堡个数
///mmax,表示最佳方案 int canPut(int x,int y)///计算是否可以放碉堡
{
///有碉堡,则返回0
for(int i=y;i>=;i--)
{
if(visit[x][i]==)
return ;
if(visit[x][i]==)
break;
}
for(int i=y;i<=n;i++)
{
if(visit[x][i]==)
return ;
if(visit[x][i]==)
break;
}
for(int i=x;i>=;i--)
{
if(visit[i][y]==)
return ;
if(visit[i][y]==)
break;
}
for(int i=x;i<=n;i++)
{
if(visit[i][y]==)
return ;
if(visit[i][y]==)
break;
}
return ;
} ///DFS
void dfs()
{
if(cou>mmax)
mmax=cou;
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
if(!visit[i][j]&&canPut(i,j))
{
visit[i][j]=;
cou++;
dfs();
visit[i][j]=;
cou--;
}
}
}
} int main()
{
char str[];
while(scanf("%d",&n),n)
{
mmax=,cou=;
for(int i=;i<=n;i++)
{
cin>>str;
for(int j=;j<n;j++)
{
visit[i][j+]=(str[j]=='X')?:;
}
}
dfs();
cout<<mmax<<endl;
}
return ;
}

深搜(DFS),回溯,Fire Net的更多相关文章

  1. 图的遍历 之 深搜dfs

    DFS 遍历 深度优先搜索是一个递归过程,有回退过程. 对一个无向连通图,在访问图中某一起始顶点u 后,由u 出发,访问它的某一邻接顶点v1:再从v1 出发,访问与v1 邻接但还没有访问过的顶点v2: ...

  2. HDU 2553 N皇后问题(深搜DFS)

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. 深搜(DFS),Image Perimeters

    题目链接:http://poj.org/problem?id=1111 解题报告: 1.这里深搜有一点要注意,对角线上的点,如果为'.',则total不应该增加,因为这不是他的边长. #include ...

  4. 算法学习笔记(六) 二叉树和图遍历—深搜 DFS 与广搜 BFS

    图的深搜与广搜 复习下二叉树.图的深搜与广搜. 从图的遍历说起.图的遍历方法有两种:深度优先遍历(Depth First Search), 广度优先遍历(Breadth First Search),其 ...

  5. 【深搜(DFS)-例题-踏青】-C++

    描述 小白和他的朋友周末相约去召唤师峡谷踏青.他们发现召唤师峡谷的地图是由一块一块格子组成的,有的格子上是草丛,有的是空地.草丛通过上下左右 4 个方向扩展其他草丛形成一片草地,任何一片草地中的格子都 ...

  6. 【LeetCode】深搜DFS(共85题)

    [98]Validate Binary Search Tree [99]Recover Binary Search Tree [100]Same Tree [101]Symmetric Tree [1 ...

  7. HDU 2614 Beat 深搜DFS

    这道题目还是比较水的,但是题意理解确实费了半天劲,没办法 谁让自己是英渣呢! 题目大意: 猪脚要解决问题, 他有个习惯,每次只解决比之前解决过的问题的难度要大. 他给我们一个矩阵  矩阵的 i 行 j ...

  8. noj电子老鼠走迷宫(深搜dfs)超时错误

    1042.电子老鼠闯迷宫 时限:1000ms 内存限制:10000K  总时限:3000ms 描述 有一只电子老鼠被困在如下图所示的迷宫中.这是一个12*12单元的正方形迷宫,黑色部分表示建筑物,白色 ...

  9. poj1321 棋盘问题(深搜dfs)

    转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接:id=1321">http://poj.org/prob ...

随机推荐

  1. html中的flv视频播放器

    项目中要播放flv视屏,第一时间想到html5的<video>标签,只是很可惜<video>兼容性差也就算了,居然还对格式有明确限制,也就是说只支持Ogg.MPEG4.WebM ...

  2. gulp打包js

    在终端定位到你要创建目录的地方,输入 sudo mkdir js 创建文件夹,这个文件夹就是放你要压缩js文件的地方 输入 sudo vim gulpfile.js 这个js就是写gulp所有的配置信 ...

  3. 在Spark shell中基于HDFS文件系统进行wordcount交互式分析

    Spark是一个分布式内存计算框架,可部署在YARN或者MESOS管理的分布式系统中(Fully Distributed),也可以以Pseudo Distributed方式部署在单个机器上面,还可以以 ...

  4. BNU29064——硬币水题II——————【事件概率】

    硬币水题II Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: ...

  5. 用js语句控制css样式

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. ztree使用方法 python后台

    一.在提前加载js的地方写一段js,判断该页面是否需要添加ztree,我的项目所有提前加载的js都写在admin.js中 //增加ztree $(document).ready(function() ...

  7. pycharm激活码------2017.11.之前有效

    BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  8. APP测试点集合

    一.功能性测试: (1)根据产品需求文档编写测试用例 (2)软件设计文档编写用例 二.兼容性适配性测试: (1)Android.iOS版本的兼容性 (2)手机分辨率兼容性 (3)网络的兼容性:2G/3 ...

  9. small zhishi

    \\192.168.1.201\d$\Data 访问远程计算机文件资源管理器

  10. 使用python简单创建一个用户和商城小程序

    整体思路: 1.用户功能:购买.显示余额.列表清单.输入 2.商家功能:修改和添加商品 创建两个接口: 用户: #Author: Gordon #读取文档,生成goodsf = open('goods ...