#include<stdio.h>

#include<string.h>

int visit[10][10];
char map[10][10];
int n,ans,ss,t;

int judge(int x,int y)
{
int k;
if(x<0||x>=n||y<0||y>=n)
return 0;
if(visit[x][y]==1||map[x][y]=='X')
return 0;
for(k=x-1;k>=0;k--)
{
if(map[k][y]=='X')//判断这一行中间是否有X
break;
if(visit[k][y]==1)
{
return 0;
}
}
for(k=y-1;k>=0;k--)
{
if(map[x][k]=='X')//判断这一列中间是否有X
break;
if(visit[x][k]==1)
return 0;
}
return 1;//严格的筛选!
}

void dfs(int ss)// ss表示此时搜索到第n个方格
{
int x,y;
if(ss==n*n)
{
if(ans<t)
ans=t;
return ;
}
x=ss/n;y=ss%n;
if(judge(x,y))
{
t++;
visit[x][y]=1;
dfs(ss+1);
t--;
visit[x][y]=0;
dfs(ss+1);
}
else
dfs(ss+1);
}

int main()
{
int i;
while(scanf("%d",&n),n)
{
t=0;
for(i=0;i<n;i++)
scanf("%s",map[i]);
memset(visit,0,sizeof(visit));
ans=0;
dfs(0);
printf("%d\n",ans);
}
return 0;
}

hdu 1045 要求全部逐一搜索完的深搜的更多相关文章

  1. HDU - 1045 Fire Net(搜索)

    Description Suppose that we have a square city with straight streets. A map of a city is a square bo ...

  2. HDU 1045 Fire Net(搜索剪枝)

    http://acm.split.hdu.edu.cn/showproblem.php?pid=1045 http://acm.hdu.edu.cn/showproblem.php?pid=1045 ...

  3. HDU 3666 THE MATRIX PROBLEM (差分约束 深搜 & 广搜)

    THE MATRIX PROBLEM Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  4. HDU 1045(Fire Net)题解

    以防万一,题目原文和链接均附在文末.那么先是题目分析: [一句话题意] 给定大小的棋盘中部分格子存在可以阻止互相攻击的墙,问棋盘中可以放置最多多少个可以横纵攻击炮塔. [题目分析] 这题本来在搜索专题 ...

  5. hdu 1045 Fire Net(最小覆盖点+构图(缩点))

    http://acm.hdu.edu.cn/showproblem.php?pid=1045 Fire Net Time Limit:1000MS     Memory Limit:32768KB   ...

  6. HDOJ(HDU).1045 Fire Net (DFS)

    HDOJ(HDU).1045 Fire Net [从零开始DFS(7)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HD ...

  7. HDU 5723 Abandoned country 最小生成树+搜索

    Abandoned country Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  8. HDU 1045——Fire Net——————【最大匹配、构图、邻接矩阵做法】

    Fire Net Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  9. HDU 1045 Fire Net 二分图建图

    HDU 1045 题意: 在一个n*n地图中,有许多可以挡住子弹的墙,问最多可以放几个炮台,使得炮台不会相互损害.炮台会向四面发射子弹. 思路: 把行列分开做,先处理行,把同一行中相互联通的点缩成一个 ...

随机推荐

  1. python声明类时继承不继承object类的区别

    不加的叫做经典类或旧式类,但是现在python3的类都默认是继承了object的,所以可写可不写 下面举个例子说明: 首先说明下__class__功能与用法: __class__功能和type()函数 ...

  2. ubuntu 防火墙打开关闭

    1.查看防火墙状态 sudo ufw status 2.打开防火墙 sudo ufw enable 3.关闭防火墙 sudo ufw disable

  3. 浏览器显示 req Provisional headers are shown

    现象: 原因: 请求被插件什么的拦截导致. 修复: 换浏览器也可以. ​

  4. Linux系统调优——Memory内存(二)

    (1).查看Memory(内存)运行状态相关工具 1)free命令查看内存使用情况 [root@youxi1 ~]# free -m //-m选项,以MB为单位显示 total used free s ...

  5. 增强篇4 CO01生产订单屏幕增强

    Step1. 结构 CO_AUFK 里增加自定义字段:ZZZ_TRIAL 然后激活结构 查看AUFK是激活状态, 字段增强完成: Step2. CMOD  使用客户增强:PPCO0012    生产订 ...

  6. 细聊Oracle通过ODBC数据源连接SQL Server数据库

    类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,文章结尾处的一些扩展有一定实战意 ...

  7. 【相机篇】从到FlyCapture2到Spinnaker

    从FlyCapture2 到 Spinnaker SDK的变换,可参见FLIR公司机器视觉的相机产品:https://www.flir.com/iis/machine-vision/ Spinnake ...

  8. conda使用报错:ImportError:DLL load failed

    conda安装python环境经常报: ImportError:DLL load failed 将环境变量加入path可以解决: D:\program\anaconda D:\program\anac ...

  9. [Google] 人和自行车匹配

    2D平面上,有m个人(P),n辆自行车(B),还有空白(O)满足以下条件1.m < n. 2.不存在两个人,到同一辆自行车距离相等, 距离用abs(x1-x2) + abs(y1-y2)定义3. ...

  10. Windows 2016 服务器安全配置和加固

    最近一个项目需要使用Windows服务器,选择安装了最新版的Windows 2016,上一次使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅. 目 ...