题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241

题意:

求某块平面上,连通块的数量。一个油田格子若周围八个方向也有一个油田格子,则认为两者相连通。

AC代码:

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int maxn=;
const int dx[]={,,,-,,,-,-};
const int dy[]={,,-,,,-,,-}; int m,n;
char mp[maxn][maxn];
int vis[maxn][maxn];
queue<pii> Q;
inline bool in(pii o) {
return <=o.first && o.first<=m && <=o.second && o.second<=n;
}
void bfs(int x,int y)
{
while(!Q.empty()) Q.pop();
vis[x][y]=;
Q.push(make_pair(x,y));
while(!Q.empty())
{
pii now=Q.front(); Q.pop();
for(int k=;k<;k++)
{
pii nxt=make_pair(now.first+dx[k],now.second+dy[k]);
if(!in(nxt)) continue;
if(mp[nxt.first][nxt.second]=='*') continue;
if(vis[nxt.first][nxt.second]) continue;
Q.push(nxt);
vis[nxt.first][nxt.second]=;
}
}
} int main()
{
while(scanf("%d%d",&m,&n) && m*n>)
{
for(int i=;i<=m;i++) scanf("%s",mp[i]+);
memset(vis,,sizeof(vis));
int cnt=;
for(int i=;i<=m;i++)
{
for(int j=;j<=n;j++)
{
if(mp[i][j]=='@' && vis[i][j]==)
{
cnt++;
bfs(i,j);
}
}
}
cout<<cnt<<endl;
}
}

HDU 1241 - Oil Deposits - [BFS]的更多相关文章

  1. HDU 1241 Oil Deposits bfs 难度:0

    http://acm.hdu.edu.cn/showproblem.php?pid=1241 对每个还未访问的点bfs,到达的点都标为一块,最后统计有多少块即可 #include <cstdio ...

  2. HDU 1241 Oil Deposits(石油储藏)

    HDU 1241 Oil Deposits(石油储藏) 00 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)   Probl ...

  3. HDU 1241 Oil Deposits --- 入门DFS

    HDU 1241 题目大意:给定一块油田,求其连通块的数目.上下左右斜对角相邻的@属于同一个连通块. 解题思路:对每一个@进行dfs遍历并标记访问状态,一次dfs可以访问一个连通块,最后统计数量. / ...

  4. hdu 1241 Oil Deposits(DFS求连通块)

    HDU 1241  Oil Deposits L -DFS Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & ...

  5. HDOJ(HDU).1241 Oil Deposits(DFS)

    HDOJ(HDU).1241 Oil Deposits(DFS) [从零开始DFS(5)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...

  6. DFS(连通块) HDU 1241 Oil Deposits

    题目传送门 /* DFS:油田问题,一道经典的DFS求连通块.当初的难题,现在看上去不过如此啊 */ /************************************************ ...

  7. HDU 1241 Oil Deposits DFS(深度优先搜索) 和 BFS(广度优先搜索)

    Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  8. HDU 1241 Oil Deposits (DFS/BFS)

    Oil Deposits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  9. HDU 1241 Oil Deposits 题解

    Oil Deposits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

随机推荐

  1. 安装rcssmin方法

    #安装rcssmin方法'''pip install wheelpip install rcssmin --install-option="--without-c-extensions&qu ...

  2. 【转】关于提示can't load package 'xxx.bpl.' 错误问题的解决方法

      转自: http://blog.sina.com.cn/s/blog_44fa172f0102v9x3.html         'xxx.bpl'包实际存在, 路径并且正确. 但是总提示'can ...

  3. AI创业的技术方案选择

    观察了许多初创公司技术方案的选择,我总结基本遵循8个字:快速灵活,物美价廉.我们也应该根据自身实际情况,跳出束缚与时俱进,选择智能互联网时代最有力的技术和工具. 基础编程语言 候选者:C#/C++/P ...

  4. MySQL和Mongodb的区别与应用场景对比

    MySQL是关系型数据库 优势: 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺点 ...

  5. Eclipse Maven编译报不支持muti-catch

    最近几次使用maven编译,总是报一下的错误:source 1.6 中不支持 multi-catch 语句,(请使用 -source 7 或更高版本以启用 multi-catch 语句) 问题很清楚, ...

  6. Windows下pip安装及更新出现“UnicodeEncodeError: 'ascii' codec can't encode character u'\u258c' in position 8: ordinal not in range(128)”问题解决办法

    Windows下pip安装及更新出现“UnicodeEncodeError: 'ascii' codec can't encode character u'\u258c' in position 8: ...

  7. 空的OnGUI也会有gc

    一个空场景,添加如下代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public ...

  8. diff ->> acl & prefix list

    1,ACL可以用于数据层面也可以用于控制层面,prefix-list只能用于控制层面2,ACL抓的是定长掩码的子网,而prefix-list可以抓取一个前缀下的所有掩码长度即子网.比如说ACL中的pe ...

  9. 使用winsw部署spring boot jar 项目

    参考:用winsw让任何Windows程序都能运行为服务 简介在linux下部署springboot项目是一件很简单的事,直接后台运行就行了,最多写个shell脚本开机自启就行了.我们最近做的项目需要 ...

  10. Servlet、Tomcat访问(access)日志配置、记录Post请求参数

    一.运行环境: Maven:3.5.2(点击下载) ,下载页 Tomcat:8.5.29(点击下载) ,下载页 JDK:jdk1.7.0_80(点击下载) ,下载页 MavenDependency: ...