标签: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: 迷宫相关推荐

  1. 【浙大脑机接口实验室探秘】人类与AI控制大鼠走出迷宫,C10背负的混合智能未来(视频)...

    (文/杨静 )我对浙江大学的脑机接口研究长久以来抱有朝圣般的浓厚兴趣,主要是受浙江大学计算机学院潘纲教授的影响.他在一次演讲里展示了脑控大鼠在一名研究人员的脑电波控制下,快速走迷宫的神奇现场,这只大鼠 ...

  2. 【upc 15305】 迷宫(DFS+BFS)

    题目描述 迷宫的管理员们决定在新开始的季节里使用新的墙纸.出于这个目的他们需要一个程序来计算迷宫内墙壁的面积.这就是你即将要做的工作. 我们把这个迷宫用一个NN(3<=N<=33)的矩阵表 ...

  3. 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 对 ...

  4. UPC 2020年夏混合个人训练第八十一场

    HDXM,给点支持吧啊,练了一晚上的科三了,十点多才到家,每天还要早起准备各种东西,也是有点辛苦了. 问题 A: 能量消耗 cost 题目描述 Rainy7 的一生注定不平凡. 在一次睡梦中,她梦见自 ...

  5. UPC——2020年春混合个人训练第二十五场(FG)

    太菜了只能写写签到 问题 F: 求生大作战 时间限制: 1 Sec 内存限制: 128 MB [提交] [状态] 题目描述 PinkRabbit 又趁 Czhou 不注意划水了,今天他打开了求生大作战 ...

  6. UPC 2020年夏混合个人训练第六十四场【ACDG】

    问题 A: 纽约 题目描述 印度洋暖流温润着纽约,四季丰沛的雨水造就了一望无际的大草原.蒙古包是纽约最独特的一道风景线,每至二月中旬,纽约的土著傣族人民又开始半年一度的转场了. 由于牲畜和行李过多,牧 ...

  7. UPC——2020年春混合个人训练第二十四场(DEFG)

    D.坏掉的手表 时间限制: 1 Sec 内存限制: 128 MB [提交] [状态] 题目描述 有个手表坏了,时间为HH:MM,你要把这个不合法的时间变为合法,请求出最少要动几位 输入 第一行表示手表 ...

  8. UPC 2020年夏混合个人训练第七十五场

    问题 A: building 时间限制: 1 Sec 内存限制: 128 MB 题目描述 WOW是BLIZZARD公司开发的一款网络游戏,游戏的背景是处在一个叫做艾泽拉斯的神秘大陆上的.在这片陆地上生 ...

  9. UPC 2020年春混合个人训练第十九场

    问题 A: 新的世界 时间限制: 1 Sec 内存限制: 128 MB 题目描述 小学五六年级的乔猫是一个喜欢不务正业写游戏的孩纸--他曾经模仿著名的沙盒游戏<Minecraft>做过一个 ...

最新文章

  1. 手游linux服务器时间同步问题
  2. QT的QThread类的使用
  3. 数据库:SQLServer中GUID用法介绍
  4. Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询
  5. (十九)java多线程之ForkJoinPool
  6. <笔记>光纤(光波导)中的传输特性1
  7. 学计算机好轻松,猎证全国计算机等级考试学习系统
  8. 微型计算机技术第三版第三章答案,微型计算机原理与接口技术第三章习题及答案...
  9. Map/Reduce
  10. SAP License:销售流程
  11. java下载好怎么验证_Java JDK下载、安装和验证
  12. 深入理解Java内存模型
  13. jquery模拟虚拟键盘带中文拼音输入_线上中文教学,这些设备越早知道越早受益!...
  14. 使用DISM++精简windows系统
  15. php 如何去除说有空格,php怎么去除所有空格
  16. WordPress主题 Modown V3.0+Erphpdown9.7.1虚拟素材资源付费下载响应式主题网站模板
  17. 模板库:8张财务分析类报表,邀您提反馈
  18. 经济危机下如何建立防御性SOA战略
  19. c语言编程定位的计算机,高校计算机专业C语言教学的四个定位
  20. Letv电视品牌升级为乐融,携手漫威打造超级营销

热门文章

  1. 手机迭代:三摄/四摄+屏下指纹镜头,促光学镜头市场红利倍增
  2. 华为mate30发布会鸿蒙,奥利奥四摄+麒麟990?华为Mate30发布时间正式确认!恐怕没有鸿蒙...
  3. not read Username for “https://gitee.com“: Device not configured
  4. 民间秘术——捉鬼杀鬼
  5. Core-periphery decomposition--核心-外围模型R代码整理
  6. Word表格中文字不居中,怎么办?
  7. 获取postgres数据库所有表名
  8. 查归档日志文件每小时生成量
  9. 无限易(PythonGo)实战
  10. 【TLJH】the-littlest-jupyterhub国内搭建和配置详细教程