码迷,mamicode.com
首页 > 其他好文 > 详细

拯救OIBH总部

时间:2016-08-30 00:05:07      阅读:494      评论:0      收藏:0      [点我收藏+]

标签:

拯救OIBH总部 area

【题目描述】:

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

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

【输入描述】:

第一行是两个数,xyx,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 }
View Code

技术分享

 

拯救OIBH总部

标签:

原文地址:http://www.cnblogs.com/cnblogsLSY/p/5819990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!