hdoj 1241 Oil Deposits

来源:互联网 发布:淘宝有没有隐藏订单 编辑:程序博客网 时间:2024/06/14 13:42

题目链接:Oil Deposits


题目大意:#是油田,可以搜索八个方向能够到的#都是一块油田,问一共有几块油田


题目思路:dfs套路题,直接按照题目内容写就可以了

#include <bits/stdc++.h>using namespace std;int n,m;char mp[105][105];int dir[8][2] = {{0,1},{0,-1},{1,0},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};bool vis[105][105];int check(int x,int y){    if(x >= 0&&x < n&&y < m&&y >= 0&&!vis[x][y]) return true;    return false;}void dfs(int x,int y){    int xx,yy;    if(!check(x,y)) return ;    vis[x][y] = true;    for(int i = 0;i < 8;i++){        xx = x + dir[i][0];        yy = y + dir[i][1];        if(mp[xx][yy] == '@')            dfs(xx,yy);    }}int main(){    while(~scanf("%d%d",&n,&m)&&n+m){        for(int i = 0;i < n;i++)            for(int j = 0;j < m;j++)                cin>>mp[i][j],vis[i][j] = false;        int count = 0;        for(int i = 0;i < n;i++){            for(int j = 0;j < m;j++){                if(mp[i][j] == '@'&&!vis[i][j])                    dfs(i,j),count++;            }        }        printf("%d\n",count);    }    return 0;}


0 0
原创粉丝点击