【暑假集训专题#搜索 HDU1241】

原创 2015年07月07日 14:49:39

【题目链接】click here~~

【题目大意】'@'代表油田位置,'*'代表地面,八个方向相邻的油田视为一个,求给定地图里油田数目

【解题思路】八个方向搜索即可

代码:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
const int N=1010;
int dir4[4][2]= {{1,0},{0,1},{-1,0},{0,-1}};
int dir8[8][2]= {{1,0},{1,1},{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1}};
char mat[N][N];
int row,line,t,k,ans,cnt,res;
bool check(int dx,int dy)
{
    if(dx>=0&&dx<=row&&dy>=0&&dy<=line) return true;
    return false;
}
void dfs(int x,int y)
{
    mat[x][y]='*';
    for(int i=0; i<8; ++i)
    {
        int dx=x+dir8[i][0];
        int dy=y+dir8[i][1];
        if(check(dx,dy)&&mat[dx][dy]=='@')
        {
            dfs(dx,dy);
        }
    }
}
int main()
{
    while(~scanf("%d%d",&row,&line)&&row&&line)
    {
        for(int i=0; i<row; ++i)
            scanf("%s",mat[i]);
        res=0;
        for(int i=0; i<row; ++i)
        {
            for(int j=0; j<line; ++j)
            {
                if(mat[i][j]=='@')
                {
                    dfs(i,j);
                    res++;
                }
            }
        }
        printf("%d\n",res);
    }
    return 0;
}

/*
1 1
*
3 5
*@*@*
**@**
*@*@*
1 8
@@****@*
5 5
****@
*@@*@
*@**@
@@@*@
@@**@
0 0
*/


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【暑假集训专题#搜索】

poj 2386 Lake Counting 【题意】: 有一个大小为N×M的园子,雨后积起了水。八连通的积水被认为是连接在一起的。请求出园子里总共有多少水洼?(八连通指的是下图中相对W 的*的部分)...

HDU 1241 Oil Deposits ([kuangbin带你飞]专题一 简单搜索)

题目连接:题目 ——————题目大意:Description GeoSurvComp地质调查公司负责探测地下石油储藏。 GeoSurvComp现在在一块矩形区域探测石油,并把这个大区域分成了很多小块...
  • HAHAAC
  • HAHAAC
  • 2016年10月16日 14:37
  • 203

搜索专题:HDU1241 Oil Deposits

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

暑假集训第三周第二阶段 搜索 J - 放苹果

J - 放苹果 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Status ...

暑假集训--训练1 二分搜索

A - Can you find it? Time Limit:3000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u ...

CSU-ACM2017暑假集训2-二分搜索 C - 4 Values whose Sum is 0

C - 4 Values whose Sum is 0The SUM problem can be formulated as follows: given four lists A, B, C, D...

csu-acm2017暑假集训2-二分搜索D - Monthly Expense

Farmer John is an astounding accounting wizard and has realized he might run out of money to run the...

CSU-ACM2017暑假集训2-二分搜索 poj3104-drying

题目链接:drying 题目: It is very hard to wash and especially to dry clothes in winter. But Jane is a...

暑假集训 8.15 数据结构实验之图论二:基于邻接表的广度优先搜索遍历 sdutoj2142

数据结构实验之图论二:基于邻接表的广度优先搜索遍历 Time Limit: 1000MS Memory limit: 65536K 题目描述 给定一个无向连通图,顶点编号从0到n-1,...

Can you find it? --CSU-ACM2017暑假集训2-二分搜索

Give you three sequences of numbers A, B, C, then we give you a number X. Now you need to calculate ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【暑假集训专题#搜索 HDU1241】
举报原因:
原因补充:

(最多只允许输入30个字)