题意:给出一个N*M的矩形区域和每个区域的状态--有/没有石油,(定义)如果两个有石油的区域是相邻的(水平、垂直、斜)则认为这是属于同一个oil
pocket。

求这块矩形区域一共有多少oilpocket

#include <stdio.h>
int grid[101][101];
char s[102][102];
int m,n;
int dir[4][2]={{-1,0},{1,0},{0,1},{0,-1}};
void dfs(int x,int y)
{
    int i,xx,yy;
    grid[x][y]=0;
    for(i=0;i<4;i++)
    {
        xx=x+dir[i][0];
        yy=y+dir[i][1];
        if(xx<0||yy<0||x>m||y>=n)
        continue;
        if(grid[xx][yy]==1)
        dfs(xx,yy);
    }
}

int main()
{
	int i, j, sum;
	while(scanf("%d%d", &m, &n), m)
	{
		for(i = 0; i < m; i++)
			scanf("%s", s+i);
		for(i = sum = 0; i < m; i++)
			for(j = 0; j < n; j++)
			{
				if(s[i][j] == '@')
				{
					sum++;
					dfs(i, j);
				}
			}
		printf("%d\n", sum);
	}
	return 0;
}

最新文章

  1. Spring Mvc的入门
  2. [原]centos6.5系统可用yum源(32位)以及rpmforge
  3. php 获取中文字符拼音首字母
  4. hdu 1195 Open the Lock
  5. sqlplus中&quot;-S&quot;和&quot;-L&quot;用法
  6. node.js 上传文件
  7. Oracle优化笔记
  8. Reward(拓扑结构+邻接表+队列)
  9. 开源OCR光学字符识别
  10. centos 6.3安装ssh
  11. path sum II(深度优先的递归实现掌握)
  12. springboot+cloud 学习(四)Zuul整合Swagger2
  13. 自行实现高性能MVC
  14. python 豆瓣验证码识别总结
  15. 原生js,通过document.getElementByClassName获取元素的索引值
  16. 一些node模块的学习思考
  17. 函数和常用模块【day05】:生成器并行计算(五)
  18. Java包装类、拆箱和装箱详解
  19. C# 遍历Dictionary并修改其中的Value
  20. JS给TR隔行换色,鼠标经过有动感

热门文章

  1. hdu 4670 Cube number on a tree(点分治)
  2. bzoj3309DZY Loves Math
  3. Codeforces Round#402(Div.1)掉分记+题解
  4. SpringCloud学习之zuul
  5. Linux学习之CentOS(十三)-----磁盘管理之 磁盘与目录的容量(转) df 与du 命令
  6. Weblogic Exception in AppMerge flows&#39; progression
  7. Linux操作系统进程模型分析进程
  8. BDD敏捷开发入门与实战
  9. 两个activity之间透明过渡效果和经验
  10. NLP系列(2)_用朴素贝叶斯进行文本分类(上)