博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenJ_Bailian 2815 城堡问题(DFS)
阅读量:7110 次
发布时间:2019-06-28

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

 

描述

1   2   3   4   5   6   7     #############################  1 #   |   #   |   #   |   |   #    #####---#####---#---#####---#  2 #   #   |   #   #   #   #   #    #---#####---#####---#####---#  3 #   |   |   #   #   #   #   #    #---#########---#####---#---#  4 #   #   |   |   |   |   #   #    #############################            (图 1)    #  = Wall      |  = No wall    -  = No wall

图1是一个城堡的地形图。请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。城堡被分割成m*n(m≤50,n≤50)个方块,每个方块可以有0~4面墙。
输入程序从标准输入设备读入数据。第一行是两个整数,分别是南北向、东西向的方块数。在接下来的输入行里,每个方块用一个数字(0≤p≤50)描述。用一个数字表示方块周围的墙,1表示西墙,2表示北墙,4表示东墙,8表示南墙。每个方块用代表其周围墙的数字之和表示。城堡的内墙被计算两次,方块(1,1)的南墙同时也是方块(2,1)的北墙。输入的数据保证城堡至少有两个房间。输出城堡的房间数、城堡中最大房间所包括的方块数。结果显示在标准输出设备上。
样例输入

4 7 11 6 11 6 3 10 6 7 9 6 13 5 15 5 1 10 12 7 13 7 5 13 11 10 8 10 12 13

样例输出

59

题目大意:

  已知城堡的地图,求城堡的房间数、城堡中最大房间所包括的方块数。

解题思路:

  显然这是一个深搜题,通过二进制的&运算来判断东南西北是否有墙。没有墙则继续往下搜,如果这个点已经访问过或都被墙围起来了则退出。

 

#include
#include
#include
using namespace std;const int N = 55;int vis[N][N],a[N][N];int n,m,s;void dfs(int x,int y){ if (vis[x][y]) return ; ++s; vis[x][y]=1; if ((a[x][y]&1)==0) dfs(x,y-1);//没西墙 if ((a[x][y]&2)==0) dfs(x-1,y);//没北墙 if ((a[x][y]&4)==0) dfs(x,y+1);//没东墙 if ((a[x][y]&8)==0) dfs(x+1,y);//没南墙}int main(){ scanf("%d%d",&n,&m); for (int i=0; i
View Code

 

转载于:https://www.cnblogs.com/l999q/p/9368485.html

你可能感兴趣的文章
Why Hadoop2
查看>>
Git操作指南
查看>>
FORM验证简单demo
查看>>
FindWindow使用方法
查看>>
VirtualBox 扩展虚拟硬盘容量
查看>>
iBeacon怎样工作
查看>>
【BZOJ】1627: [Usaco2007 Dec]穿越泥地(bfs)
查看>>
PHP Unit资料收集
查看>>
[Bug]转:使用jquery的 uploadify,在谷歌浏览器上总会崩溃的解决方法
查看>>
细说linux挂载——mount,及其他……
查看>>
iOS开发之微信聊天页面实现
查看>>
VS2013.3 & VS2014 任务资源管理器
查看>>
SimpleDateFormat使用具体解释
查看>>
《软件测试自动化之道》读书笔记 之 SQL 存储过程测试
查看>>
Python list替换元素
查看>>
SQL Server T-SQL高级查询(转)
查看>>
微信公众平台java开发具体解释(project代码+解析)
查看>>
Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server at localhost-config.
查看>>
【BZOJ】1044: [HAOI2008]木棍分割(二分+dp)
查看>>
哈佛经济学家关于工作效率的意外发现
查看>>