HDU - 1241 Oil Deposits 经典dfs 格子
最水的一道石油竟然改了一个小时,好菜好菜。
x<=r y<=c x<=r y<=c x<=r y<=c x<=r y<=c
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int dir[][]={,, ,-, ,, -,, ,, ,-, -,, -,-};
int r,c;
int a[][];
int ans; void dfs(int x,int y)
{
int tx,ty,i,j;
for(i=;i<;i++)
{
tx=x+dir[i][];
ty=y+dir[i][];
if(tx>=&&tx<r&&ty>=&&ty<c&&a[tx][ty]==)
{
a[tx][ty]=;
dfs(tx,ty);
}
}
} int main()
{
char s;
int i,j;
while(scanf("%d%d",&r,&c)!=EOF)
{
ans=;
if(r==||c==)break;
memset(a,,sizeof(a));
for(i=;i<r;i++){
for(j=;j<c;j++){
scanf(" %c",&s);
if(s=='@')
a[i][j]=;
else a[i][j]=;
}
}
/* for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf("%d ",a[i][j]);
printf("\n");
}*/
for(i=;i<r;i++)
for(j=;j<c;j++)
{
if(a[i][j]==)
{
a[i][j]=;
dfs(i,j);
ans++;
}
}
printf("%d\n",ans);
}
return ;
}
HDU - 1241 Oil Deposits 经典dfs 格子的更多相关文章
- HDOJ/HDU 1241 Oil Deposits(经典DFS)
Problem Description The GeoSurvComp geologic survey company is responsible for detecting underground ...
- hdu 1241 Oil Deposits(DFS求连通块)
HDU 1241 Oil Deposits L -DFS Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & ...
- HDU 1241 Oil Deposits --- 入门DFS
HDU 1241 题目大意:给定一块油田,求其连通块的数目.上下左右斜对角相邻的@属于同一个连通块. 解题思路:对每一个@进行dfs遍历并标记访问状态,一次dfs可以访问一个连通块,最后统计数量. / ...
- hdu 1241:Oil Deposits(DFS)
Oil Deposits Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total ...
- HDU 1241 Oil Deposits (DFS)
题目链接:Oil Deposits 解析:问有多少个"@"块.当中每一个块内的各个"@"至少通过八个方向之中的一个相邻. 直接从"@"的地方 ...
- HDU 1241 Oil Deposits【DFS】
解题思路:第一道DFS的题目--- 参看了紫书和网上的题解-- 在找到一块油田@的时候,往它的八个方向找,直到在能找到的范围内没有油田结束这次搜索 可以模拟一次DFS,比如说样例 在i=0,j=1时, ...
- HDU - 1241 Oil Deposits 【DFS】
题目链接 https://cn.vjudge.net/contest/65959#problem/L 题意 @表示油田 如果 @@是连在一起的 可以八个方向相连 那么它们就是 一块油田 要找出 一共有 ...
- HDOJ(HDU).1241 Oil Deposits(DFS)
HDOJ(HDU).1241 Oil Deposits(DFS) [从零开始DFS(5)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架 ...
- DFS(连通块) HDU 1241 Oil Deposits
题目传送门 /* DFS:油田问题,一道经典的DFS求连通块.当初的难题,现在看上去不过如此啊 */ /************************************************ ...
随机推荐
- Commit can not be set while enrolled in a transaction
[java] Exception: java.sql.SQLException [java] Message: Commit can not be set while enrolled in a tr ...
- Linux 内核态 用户态
内核态和用户态最主要区别在于权限不同,比如特权级别0-3,0级就意味着进入内核态,分级别之后,应该程序大部分情况下运行在用户态,保证了程序运行的安全性 什么情况下会发生从用户态向内核态切换.这里细分为 ...
- CentOS7 安装phpMyAdmin-4.8.3-all-languages
1 需要先安装好web服务(如nginx).PHP.数据库(如MySQL) 在此略过... wget -O /tmp/phpMyAdmin--all-languages.tar.gz https:// ...
- Python开发【初始篇】:Linux下安装Python3
Linux系统默认自带python2.6的版本,这个版本被系统很多程序所依赖,所以建议不要轻易删除,除非你能解决其他程序的依赖问题.如果使用最新的Python3需要进行编译安装源码包,这样就对系统默认 ...
- redis单例模式
看到好多面试都问设计模式,我就简单的了解了一下,顺便把之前封装好的Reis做了一次修改. 单例模式(Singleton Pattern 单件模式或单元素模式) 单例模式确保某个类只有一个实例,而且自行 ...
- Eclipse常用快捷键--摘录他人
Eclipse常用快捷键 1几个最重要的快捷键 代码助手:Ctrl+Space(简体中文操作系统是Alt+/) 快速修正:Ctrl+1 单词补全:Alt+/ 打开外部Java文档:Shift+F2显示 ...
- 使用Fiddle对夜神模拟器进行抓包的设置
注意: 设置完后, 不开启 Fiddle 的话,模拟器就不能上网了. 可以通过再把网络配置 改回去 就可以恢复网络正常访问了 一.配置Fiddle参数设置 1.Tools->Options 2 ...
- JavaScript中的闭包永远都存储在内存中,除非关闭浏览器
//閉包實現累加功能 function fn1() { var n = 1; add = function() { n += 1; } function fn2() { n += 1; console ...
- java GUI的效果图
import java.awt.*;import javax.swing.*; public class GridBagDemo extends JFrame { public static v ...
- SQL: Cannot create JDBC driver of class '' for connect URL
使用数据库数据源的web 项目,发布后,访问数据库500报错: 浏览器端: 控制台: 数据库连接池在不启动Tomcat的情况下,测试类通过,没有问题. 一旦在服务器发布,就会出现问题,考虑是Tomca ...