POJ 2815:城堡问题
描述
1 2 3 4 5 6 7 #############################1 # | # | # | | ######---#####---#---#####---#2 # # | # # # # ##---#####---#####---#####---#3 # | | # # # # ##---#########---#####---#---#4 # # | | | | # ##############################(图 1)
# = Wall
| = No wall
- = No wall
图1是一个城堡的地形图。请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大。城堡被分割成mn(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
样例输出
5
9
代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
int r,c;
int room[60][60];
int visited[60][60];
int maxR=0,rnum=0;
int rsize;
void dfs(int i,int k)
{if(visited[i][k]) return ;++rsize;visited[i][k]=rnum;if((room[i][k]&1)==0) dfs(i,k-1);//向西走 if((room[i][k]&2)==0) dfs(i-1,k);//向北走 if((room[i][k]&4)==0) dfs(i,k+1);//向东走 if((room[i][k]&8)==0) dfs(i+1,k);//向南走
}int main()
{cin>>r>>c;for(int i=1;i<=r;i++)for(int j=1;j<=c;j++){cin>>room[i][j];visited[i][j]=0;}for(int i=1;i<=r;i++){for(int j=1;j<=c;j++){if(!visited[i][j]){++rnum;rsize=0;dfs(i,j);maxR=max(maxR,rsize);}}}cout<<rnum<<endl<<maxR<<endl;return 0;
}
POJ 2815:城堡问题相关推荐
- 百练2815 城堡问题
题目要求 总时间限制:1000ms 内存限制:65536kB 题目描述 Wall | = No wall – = No wall 图1是一个城堡的地形图. 请你编写一个程序,计算城堡一共有多少房间,最 ...
- 百练2815:城堡问题(DFS)
描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # ...
- poj 1164城堡问题(DFS)
#include <iostream> #include <cstring> using namespace std;int R,C; //行列数 int rooms[60][ ...
- 电子学会 青少年软件编程等级考试 C语言 5 级
5级-2020-12-01-漫漫回国路 5级-2020-12-02-装箱问题 19:装箱问题 OpenJudge - 19:装箱问题 8785:装箱问题 OpenJudge - 8785:装箱问题 1 ...
- Bailian2815 城堡问题【DFS】
2815:城堡问题 总时间限制: 1000ms 内存限制: 65536kB 描述 1 2 3 4 5 6 7 ############################# 1 # | # | # | | ...
- 杭电 1272 poj 1308 小希的迷宫
这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正 ...
- 【转载】图论 500题——主要为hdu/poj/zoj
转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...
- wall poj 1113
题目链接:http://poj.org/problem?id=1113 题意:一个国王要在自己的城堡周围建一堵围墙,要求围墙距城堡最短距离为L.问建这样一堵围墙的最短长度是多少. 题解思路:显然围墙建 ...
- P1457 城堡 The Castle(DFS+染色)
题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张"幸运爱尔兰"(一种彩票).结果这张彩票让他获得了这次 ...
最新文章
- 四十六、获得SD卡的大小以及内部的文件信息
- WinHEC 2008 走马观花 [多图杀猫]
- (译)用多重赋值和元组解包提高python代码的可读性
- JavaScript中错误正确处理方式,你用对了吗?
- 数组及字符串相关知识
- React as a UI Runtime(五、列表)
- 世界主要国家的网络管理体制
- 【转载】关于.NET下开源及商业图像处理(PSD)组件
- 数据结构--二叉搜索树
- Maven - 安装 配置
- 微信-连接一切的力量
- linux下pcie串口卡驱动安装,pci串口卡万能驱动
- 论文阅读 [TPAMI-2022] VolterraNet: A Higher Order Convolutional Network With Group Equivariance for Homo
- 如何快速实现抖音分享与第三方登录?
- 关于U盘中毒,文件全变成快捷方式
- 如何打出j间隔符号‘·’
- 良心推荐:看完这20部BBC神级纪录片,英语水平提升几个Level!
- 游戏服务器的压力测试应该如何进行
- 如何使用Confide发送自毁iMessage
- mysql查询某学期开设的课程_查询KCXX表中2、3、4学期开设的课程情况
热门文章
- php imagemagick pango,imagemagick pango安装
- 市值实现首度超越,Salesforce完胜甲骨文?
- 监理工程师报名有年龄的要求吗?要注意什么?
- 监理工程师准考证打印常见问题汇总!
- ntp如何确认与服务器偏差_NTP时间同步服务器(NTP服务器)原理详解
- chrome安装json解析插件
- 【海洋女神原创】一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(五) --补遗 (已补充第三部分完整版)...
- 考研院校计算机排名,2018考研:计算机专业全球院校排名公布,上海交通大学竟排第一?...
- keil #pragma anon_unions
- Vulkan Tutorial 6 统一缓冲区