首页 > 其他 > 详细

poj 1562 Oil Deposits (广搜,简单)

时间:2014-02-15 01:11:38      阅读:352      评论:0      收藏:0      [点我收藏+]

题目

 

简单的题目,只是测试案例的输入后面可能有空格,所以要注意一下输入方式。

 

bubuko.com,布布扣
#define  _CRT_SECURE_NO_WARNINGS
//题目的案例输入n,m后面有些貌似有空格。。。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
using namespace std;
#define MAXN 110
//bool vis[MAXN][MAXN];
char map[MAXN][MAXN];
int n,m,sum;
int xx[8]={0,0,1,1,1,-1,-1,-1};
int yy[8]={1,-1,0,1,-1,0,1,-1};
struct tt
{
    int x,y;
};

int bfs()
{
    int ans=0;
    tt front,rear,temp;
    queue<tt>q;
    while(!q.empty())
        q.pop();
//    memset(vis,false,sizeof(vis));
    for(int j=0;j<n;j++)
    {
        for(int k=0;k<m;k++)
        {
            if(map[j][k]==@)
            {
                ans++;
                sum--;
                map[j][k]=*;
                if(sum==0)return ans;
                front.x=j,front.y=k;
                q.push(front);
                while(!q.empty())
                {
                    temp=q.front();
                    q.pop();
                    for(int i=0;i<8;i++)
                    {
                        rear.x=temp.x+xx[i];
                        rear.y=temp.y+yy[i];
                        if(rear.x>=0&&rear.x<n&&rear.y>=0&&rear.y<m&&map[rear.x][rear.y]==@)
                        {
                            map[rear.x][rear.y]=*;
                            q.push(rear);
                            sum--;
                            if(sum==0)return ans;
                        }
                    }
                }
            }
        }
    }
    return ans;
}

int main()
{
    int i,j;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        if(n==0&&m==0)
            break;
        sum=0;
        for(i=0;i<n;i++)
        {
            scanf("%s",map[i]);//因为输入后貌似有时有空格,所以这么输入好了
            for(j=0;j<m;j++)
            {
                if(map[i][j]==@)
                    sum++;
            }
            
        }
        printf("%d\n",bfs());
    }
    return 0;
}
View Code

poj 1562 Oil Deposits (广搜,简单)

原文:http://www.cnblogs.com/laiba2004/p/3549066.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!