初学DFS:HDU1241 Oil deposits

原创 2016年06月01日 20:55:05

这题做了几小时,怪自己粗心

注意题目给出的最后一组数据M后面多了一个空格,不要直接复制,我就是直接复制过来写成文件调试,坑死了

#include <iostream>
#include <cstdio>
#include <cstring>
//#define test
using namespace std;
char vis[105][105];
int cnt;
int M,N;
int dir[8][2] = {{0,1},{1,0},{-1,0},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1}};
void dfs(int x,int y)
{
    vis[x][y]='*';
    //printf("%d %d\n",x,y);
    int xx,yy;
    for(int i=0; i<8; i++)
    {
        xx=x+dir[i][0];
        yy=y+dir[i][1];
        if(xx>M||yy>N||xx<1||yy<1||vis[xx][yy]=='*')
            continue;
        if(vis[xx][yy]=='@')
            dfs(xx,yy);
    }
    return;
}
int main()
{
    //fp=fopen("out.txt","w");
    while(scanf("%d %d",&M,&N)!=EOF)
    {
        getchar();
        if(M==0||N==0)
            break;
        for(int i=1; i<=M; i++)
        {
            for(int j=1; j<=N; j++)
                scanf("%c",&vis[i][j]);
            getchar();//get the char '\n'
        }
#ifdef test
        for(int i=1; i<=M; i++)
        {
            for(int j=1; j<=N; j++)
                printf("%c",vis[i][j]);
            printf("\n");
        }
#endif
        cnt=0;
        for(int i=1; i<=M; i++)
            for(int j=1; j<=N; j++)
                if(vis[i][j]=='@')
                {
                    cnt++;
                    dfs(i,j);
                }
        printf("%d\n",cnt);
        //memset(vis,0,sizeof(vis));
    }
    return 0;
}



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

相关文章推荐

【HDU 1241 Oil Deposits】 + DFS || BFS

Oil DepositsProblem Description The GeoSurvComp geologic survey company is responsible for detectin...

HDU 1241 Oil Deposits[dfs || bfs]

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

PKU 1562/HDU 1241 Oil Deposits(原油有多少块区域---BFS,DFS)

Oil Deposits Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u De...

HDU1241:Oil Deposits(DFS)

Problem Description The GeoSurvComp geologic survey company is responsible for detecting undergroun...

hdu 1241 Oil Deposits (dfs经典入门)

本题链接:点击打开链接 Oil Deposits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (...

K - Oil Deposits HDU - 1241——DFS

Think: 1本题DFS函数含义:寻找符合条件的连接体 2遍历方向:8个方向建议参考博客链接K - Oil Deposits HDU - 1241 The GeoSurvComp g...

hdu 1241 Oil Deposits DFS

传送门 http://acm.hdu.edu.cn/showproblem.php?pid=1241 题意是让你找有几块油田(一块油田的意义是许多相邻的@区域形成的大的区域),然后八个方向...

HDU 1241 Oil Deposits (基础DFS 或者 BFS)

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

HDU1241 Oil Deposits 解题报告--dfs

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

HDU/HDOJ 1241 Oil Deposits (DFS)深度优先搜索

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1241 题意:相当于求图中连通子图的个数,这里的连通按照题意要求为 八邻域连通(上,下,左,右,四个对...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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