拯救OIBH总部

拯救OIBH总部 area

【题目描述】:

OIBH总部突然被水淹没了!现在OIBH需要你的救援……

OIBH被突来的洪水淹没了>.<还好OIBH总部有在某些重要的地方起一些围墙,用*号表示,而一个封闭的*号区域洪水是进不去的……现在给出OIBH的围墙建设图,问OIBH总部没被淹到的重要区域(由"0"表示)有多少。

【输入描述】:

第一行是两个数,x和y(x,y<=500)

第二行及以下是一个由*和0组成的x*y的图。

【输出描述】:

输出没被水淹没的OIBH总部的“0”的数量。


【样例输入】


【样例输出】


4 5

00000

00*00

0*0*0

00*00


1


5 5

*****

*0*0*

**0**

*0*0*

*****


5

【数据范围及描述】:

搜索水题,我并不想多讲

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 #include <queue>
 6 using namespace std;
 7
 8 const int maxn=505;
 9 const int dx[]={1,-1,0,0};
10 const int dy[]={0,0,1,-1};
11 char g[maxn][maxn];
12 bool vis[maxn][maxn];
13 int n,m;
14
15 struct node
16 {
17     int x,y;
18 };
19
20 int bfs(int x,int y)
21 {
22     queue<node> Q;
23     node top;
24     Q.push((node){x,y});
25     vis[x][y]=true;
26     bool flag=true;
27     int cnt(1);
28     while(!Q.empty())
29     {
30         top=Q.front();
31         Q.pop();
32         if(top.x==1||top.x==n||top.y==1||top.y==m) flag=false;
33         for(int i=0;i<4;i++)
34         {
35             int xx=top.x+dx[i];
36             int yy=top.y+dy[i];
37             if(xx<1||xx>n||yy<1||yy>m)
38             {
39                 flag=false;
40                 continue;
41             }
42             if(!vis[xx][yy]&&g[xx][yy]==‘0‘)
43             {
44                 vis[xx][yy]=true;
45                 Q.push((node){xx,yy});
46                 cnt++;
47             }
48         }
49     }
50     if(flag) return cnt;
51     return 0;
52 }
53
54
55
56 int main()
57 {
58     scanf("%d %d\n",&n,&m);
59     for(int i=1;i<=n;i++)
60         gets(g[i]+1);
61     memset(vis,false,sizeof(vis));
62     int ans(0);
63     for(int i=1;i<=n;i++)
64         for(int j=1;j<=m;j++)
65         {
66             if(g[i][j]==‘0‘&&!vis[i][j])
67                 ans+=bfs(i,j);
68         }
69     printf("%d",ans);
70     return 0;
71 }

时间: 2024-12-21 14:15:32

拯救OIBH总部的相关文章

洛谷 P1506 拯救oibh总部

洛谷 P1506 拯救oibh总部 题目背景 oibh总部突然被水淹没了!现在需要你的救援-- 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用*号表示,而一个封闭的*号区域洪水是进不去的--现在给出oibh的围墙建设图,问oibh总部没被淹到的重要区域(由"0"表示)有多少. 输入输出格式 输入格式: 第一行是两个数,x和y(x,y<=500) 第二行及以下是一个由*和0组成的x*y的图. 输出格式: 输出没被水淹没的oib

洛谷 P1506 拯救oibh总部【DFS/Flood Fill】

题目背景 oibh总部突然被水淹没了!现在需要你的救援…… 题目描述 oibh被突来的洪水淹没了>.<还好oibh总部有在某些重要的地方起一些围墙,用号表示,而一个封闭的号区域洪水是进不去的……现在给出oibh的围墙建设图,问oibh总部没被淹到的重要区域(由”0”表示)有多少. 输入输出格式 输入格式: 第一行是两个数,x和y(x,y<=500) 第二行及以下是一个由*和0组成的x*y的图. 输出格式: 输出没被水淹没的oibh总部的“0”的数量. 输入输出样例 输入样例#1: 样例输

vijos- P1385盗窃-月之眼 (水题 + python)

P1385盗窃-月之眼 Accepted 标签:怪盗基德 VS OIBH[显示标签] 背景 怪盗基德 VS OIBH 第三话 描述 怪盗基德第三次来到熟悉的OIBH总部.屡屡失败的OIBH这次看守的是The Eye of Moon.还是那个 房间,还是那扇门,不同的是OIBH对密码锁进行了改进.这次屏幕上只显示一个数n(基德:这是 改进了还是退化了?). 密码生成方法:设集合A中A={1,2,...,n},B为A子集.对于B中任意一个元素x,2x均不在集合B中. B中元素数目最大值即为密码. 格

p1400 盗窃

背景 Background 怪盗基德 VS OIBH系列  第一话 描述 Description 怪盗基德煞费苦心历尽九九八十一难终于来到了存放Paris Sunshine的OIBH总部大楼顶上.基德知道这幢大楼的层数以及哪几层有呆头呆脑的警察.他还知道Paris Sunshine就藏在两层层数与警卫人数成反比的楼层的中间那层.基德想要知道那层楼的层数,警卫人数以及到那层所要经过的警卫人数.基德行踪不定,可能从楼底往楼上走,也可能从楼顶往楼下走. 输入格式 InputFormat 输入文件共n+

tyvj 1399

P1399尾声-怪盗基德的逃离 未递交 标签:怪盗基德 VS OIBH[显示标签] 背景 怪盗基德第四次拿着战利品信心满满地离开了OIBH总部,一路上大摇大摆,好不嚣张.OIBH的人看不下去又没办法,打算作罢,可是有一天……当当当当……当OIBH总部的吃饭铃声响起的时候,所有正在埋头工作的大牛们都以迅雷不及掩耳盗铃之势向食堂冲去.食堂的大门顿时被人群塞的鼓鼓的(可怜ing...)当大牛们正在全力消灭由水稻演变而来的那东西时,突然走进来一个玉树临风英俊潇洒人见人爱花见花开啤酒见啤酒盖开的大帅哥(啊

Vijos 1385盗窃-月之眼

背景 怪盗基德 VS OIBH第三话 描述 怪盗基德第三次来到熟悉的OIBH总部.屡屡失败的OIBH这次看守的是The Eye of Moon.还是那个房间,还是那扇门,不同的是OIBH对密码锁进行了改进.这次屏幕上只显示一个数n(基德:这是改进了还是退化了?). 密码生成方法:设集合A中A={1,2,...,n},B为A子集.对于B中任意一个元素x,2x均不在集合B中. B中元素数目最大值即为密码. 格式 输入格式 一行,一个整数n(1<=n<=maxlongint) 输出格式 只有一个整数

VJ 1385 盗窃-月之眼

背景 怪盗基德 VS OIBH 第三话 描述 怪盗基德第三次来到熟悉的OIBH总部.屡屡失败的OIBH这次看守的是The Eye of Moon.还是那个 房间,还是那扇门,不同的是OIBH对密码锁进行了改进.这次屏幕上只显示一个数n(基德:这是 改进了还是退化了?). 密码生成方法:设集合A中A={1,2,...,n},B为A子集.对于B中任意一个元素x,2x均不在集合B中. B中元素数目最大值即为密码. 格式 输入格式 一行,一个整数n(1<=n<=maxlongint) 输出格式 只有一

无限互联奖学金文章连载北京总部四十九期胡梦川 第一篇

无限互联奖学金文章连载北京总部四十九期胡梦川 第一篇: 今天是来到无限互联的第四天,严格来说已经第六天了,刚来就是开班典礼,给人一种很好的氛围.老师讲了很多关于以后学习的技巧和规定,我的第一感觉是,比备战高考还要严格,不过这才能体现一个组织的负责任.正式开讲才感觉到这个班级的大神无处不在,不努力根本赶不上,就是这个学习氛围和高强度的练习很重要.多用心你才能感觉到有些事其实很简单.关于学习时间大家基本都是一天不动的在敲代码,等于给自己一个机会吧.时间飞逝,抓住机会才重要.刚来第一周,感受最深就是好

无限互联奖学金连载1北京总部49期

拉着行李走下高铁,在北京南站的出站口见着了无线互联的杜老师,带着一脸温和的笑容.在杜老师的带领下,我们四个小伙伴成功体验了一回北京拥挤的地铁,被在这小小的沙丁鱼罐头里的滋味真心不好受.转了两趟地铁一趟公交之后,我们终于到达了目的地附近,让人接走我们的行李之后,杜老师又带着我们一路走到了无线互联的总部,各个教室里都有不少的同学,或独自埋头码代码,或一起低声讨论,脸上带着的,都是满满对知识的渴望.这样的景象,让我相信自己来对了地方,接下来在无限互联度过的四个月,必将改变过去懒散的自己,学到真正的技术