UPC(混合1)问题 D: 迷宫
标签:dfs,bfs
时间限制: 1 Sec 内存限制: 128 MB
题目描述
迷宫的管理员们决定在新开始的季节里使用新的墙纸。出于这个目的他们需要一个程序来计算迷宫内墙壁的面积。这就是你即将要做的工作。
我们把这个迷宫用一个NxN(3<=N<=33)的矩阵表示。一些矩阵单元包含一个“.”(这代表一个空的方块),另一些矩阵单元包含一个“#”(这代表一个用巨石砌成的石墙占据的方块)。全部方块的大小都为3*3平方米。
墙壁由迷宫的四周(除了作为迷宫出入口的左上角和右下角以外)以及那些标记为“#”的矩阵单元构成,除此之外没有其他的墙。在输入的矩阵里左上角和右下角永远是一个“.”。你的任务是计算迷宫里可见部分的墙壁的面积。换句话说,就是对迷宫的游客来说墙壁表面可见的部分。注意在两块相邻的石块之间没有空隙,即使两块石块在转角处相接触,我们都认为它们是相邻的。看看图示的例子:迷宫中可见的墙壁都用加粗的线条来描画。所有墙壁的高度都是三米。
输入
输入的第一行包含一个数字N。接下来的N行每行都包含有N个字符。每行描述了迷宫矩阵的一行。每行都只有“.”、“#”这两个字符并都以一个换行符结束。输入里没有任何的空格
输出
你的程序必须输出一个整数,即所需要的壁纸的准确面积。
样例输入
5
…
…##
…#…
…###
…
样例输出
198
思路:
用一个数组vis[i][j]位置是".“还是”#",需要前后,两次遍历才能遍历完全。
其实就是把每个点遍历一遍,如果有墙和它相邻面积就加一,最后x9。
如果不好理解的话,建议把vis数组输出看看。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <math.h>
#include <vector>
#include <queue>
#include <ctime>
#define ll long long
#define inf 0x3f3f3f3f
#define N 35
using namespace std;
int n,i,j,ans=-4;
char str[N][N]= {'\0'};
char s[N][N]= {'\0'};
int vis[N][N];
int d1[4]= {-1,1,0,0};
int d2[4]= {0,0,-1,1}; //up,down,left,right
void dfs(int x,int y)
{if(x>n||y>n||x<1||y<1||vis[x][y]==1||s[x][y]=='#')return ;vis[x][y]=1;for(int i=0; i<4; i++){int a=x+d1[i];int b=y+d2[i];dfs(a,b);}
}
int main()
{scanf("%d",&n);for(i=1; i<=n; i++){scanf("%s",str[i]);for(j=1; j<=n; j++)s[i][j]=str[i][j-1];}memset(vis,0,sizeof(vis));dfs(1,1);dfs(n,n);for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(vis[i][j]){for(int k=0;k<4;k++){int x=i+d1[k];int y=j+d2[k];if(!vis[x][y])ans++;}}}}printf("%d",ans*9);return 0;
}
UPC(混合1)问题 D: 迷宫相关推荐
- 【浙大脑机接口实验室探秘】人类与AI控制大鼠走出迷宫,C10背负的混合智能未来(视频)...
(文/杨静 )我对浙江大学的脑机接口研究长久以来抱有朝圣般的浓厚兴趣,主要是受浙江大学计算机学院潘纲教授的影响.他在一次演讲里展示了脑控大鼠在一名研究人员的脑电波控制下,快速走迷宫的神奇现场,这只大鼠 ...
- 【upc 15305】 迷宫(DFS+BFS)
题目描述 迷宫的管理员们决定在新开始的季节里使用新的墙纸.出于这个目的他们需要一个程序来计算迷宫内墙壁的面积.这就是你即将要做的工作. 我们把这个迷宫用一个NN(3<=N<=33)的矩阵表 ...
- UPC 2020年夏混合个人训练第五十场【DEG】
问题 D: 01矩阵 时间限制: 1 Sec 内存限制: 128 MB 样例输入 2 2 1 1 样例输出 10 提示 对于20%的数据:n,m,x,y≤3 对于40%的数据:n,m,x,y≤70 对 ...
- UPC 2020年夏混合个人训练第八十一场
HDXM,给点支持吧啊,练了一晚上的科三了,十点多才到家,每天还要早起准备各种东西,也是有点辛苦了. 问题 A: 能量消耗 cost 题目描述 Rainy7 的一生注定不平凡. 在一次睡梦中,她梦见自 ...
- UPC——2020年春混合个人训练第二十五场(FG)
太菜了只能写写签到 问题 F: 求生大作战 时间限制: 1 Sec 内存限制: 128 MB [提交] [状态] 题目描述 PinkRabbit 又趁 Czhou 不注意划水了,今天他打开了求生大作战 ...
- UPC 2020年夏混合个人训练第六十四场【ACDG】
问题 A: 纽约 题目描述 印度洋暖流温润着纽约,四季丰沛的雨水造就了一望无际的大草原.蒙古包是纽约最独特的一道风景线,每至二月中旬,纽约的土著傣族人民又开始半年一度的转场了. 由于牲畜和行李过多,牧 ...
- UPC——2020年春混合个人训练第二十四场(DEFG)
D.坏掉的手表 时间限制: 1 Sec 内存限制: 128 MB [提交] [状态] 题目描述 有个手表坏了,时间为HH:MM,你要把这个不合法的时间变为合法,请求出最少要动几位 输入 第一行表示手表 ...
- UPC 2020年夏混合个人训练第七十五场
问题 A: building 时间限制: 1 Sec 内存限制: 128 MB 题目描述 WOW是BLIZZARD公司开发的一款网络游戏,游戏的背景是处在一个叫做艾泽拉斯的神秘大陆上的.在这片陆地上生 ...
- UPC 2020年春混合个人训练第十九场
问题 A: 新的世界 时间限制: 1 Sec 内存限制: 128 MB 题目描述 小学五六年级的乔猫是一个喜欢不务正业写游戏的孩纸--他曾经模仿著名的沙盒游戏<Minecraft>做过一个 ...
最新文章
- 手游linux服务器时间同步问题
- QT的QThread类的使用
- 数据库:SQLServer中GUID用法介绍
- Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询
- (十九)java多线程之ForkJoinPool
- <笔记>光纤(光波导)中的传输特性1
- 学计算机好轻松,猎证全国计算机等级考试学习系统
- 微型计算机技术第三版第三章答案,微型计算机原理与接口技术第三章习题及答案...
- Map/Reduce
- SAP License:销售流程
- java下载好怎么验证_Java JDK下载、安装和验证
- 深入理解Java内存模型
- jquery模拟虚拟键盘带中文拼音输入_线上中文教学,这些设备越早知道越早受益!...
- 使用DISM++精简windows系统
- php 如何去除说有空格,php怎么去除所有空格
- WordPress主题 Modown V3.0+Erphpdown9.7.1虚拟素材资源付费下载响应式主题网站模板
- 模板库:8张财务分析类报表,邀您提反馈
- 经济危机下如何建立防御性SOA战略
- c语言编程定位的计算机,高校计算机专业C语言教学的四个定位
- Letv电视品牌升级为乐融,携手漫威打造超级营销
热门文章
- 手机迭代:三摄/四摄+屏下指纹镜头,促光学镜头市场红利倍增
- 华为mate30发布会鸿蒙,奥利奥四摄+麒麟990?华为Mate30发布时间正式确认!恐怕没有鸿蒙...
- not read Username for “https://gitee.com“: Device not configured
- 民间秘术——捉鬼杀鬼
- Core-periphery decomposition--核心-外围模型R代码整理
- Word表格中文字不居中,怎么办?
- 获取postgres数据库所有表名
- 查归档日志文件每小时生成量
- 无限易(PythonGo)实战
- 【TLJH】the-littlest-jupyterhub国内搭建和配置详细教程