关闭

hdoj1242bfs入门

510人阅读 评论(0) 收藏 举报
分类:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
int d[210][210];
using namespace std;
const int inf=0x7fffffff;
char field[210][210];
int n,m,sx,sy;
int fx[4]={0,0,-1,1};
int fy[4]={1,-1,0,0};
struct pos
{
    int x,y,step;
};
int bfs()
{
    queue<pos> que;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
        d[i][j]=inf;
    d[sx][sy]=0;
    pos tmp,next;
    tmp.x=sx;
    tmp.y=sy;
    tmp.step=0;
    que.push(tmp);
    int minn=inf;
    while(!que.empty())
    {
        tmp=que.front();
        que.pop();
        if(field[tmp.x][tmp.y]=='r')
            minn=min(minn,d[tmp.x][tmp.y]);
        for(int i=0;i<4;i++)
        {
            int nx=tmp.x+fx[i];
            int ny=tmp.y+fy[i];
            if(nx>=0&&nx<n&&ny>=0&&ny<m&&field[nx][ny]!='#')
            {
                if(d[nx][ny]>tmp.step+1)
                {
                    next.x=nx;
                    next.y=ny;
                    next.step=tmp.step+1;
                    if(field[nx][ny]=='x')
                        next.step++;
                    que.push(next);
                    d[nx][ny]=next.step;
                }
            }
        }
    }
    return minn;
}
int main()
{
    while(cin>>n>>m)
    {
        memset(d,0,sizeof(d));
        for(int i=0;i<n;i++)
            scanf("%s",field[i]);
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
                if(field[i][j]=='a')
                {
                    sx=i;
                    sy=j;
                }
        int res=bfs();
        if(res==inf)
            printf("Poor ANGEL has to stay in the prison all his life.\n");
        else
            printf("%d\n",res);
    }
    return 0;
}

题目大意:一个n*m的监狱,a表示天使,r表示天使的朋友,x表示守卫,.表示路,#表示墙。天使的朋友要去救天使,碰到守卫会增加1s的用时。题意是说有多个朋友,但据说测试数据中都是只有一个朋友的情况。不过我还是按有多个朋友解决。就是从天使作为起点,朋友作为你终点,在所有终点中找最小的那个。



0
0
查看评论

Lucene基础(一)--入门

Lucene介绍lucene的介绍,这里引用百度百科的介绍 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种...
  • fun913510024
  • fun913510024
  • 2015-05-30 17:55
  • 1758

spring入门介绍

课程简介: 1.Spring的概况 2.Spring之IOC 3.Spring之AOP 一、Spring的概况 简介:Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,他主要解决企业应用开发的复杂性。  好处: 可以有效组织中间层对象。 使用统一...
  • qq_33774822
  • qq_33774822
  • 2016-09-07 19:36
  • 288

Linux(Ubuntu)入门

1、Ubuntu计算机目录下的各文件夹里面存放的内容/bin/ 二进制可执行文件 /boot/ /cdrom/ /dev/ 设备特殊文件 /etc/ 系统管理目录 /home/ 用户主目录 /lib/ & /lib64/ 动态链接文件,类似于Windows中的.dll文件目录...
  • Quason
  • Quason
  • 2016-03-23 15:07
  • 1717

ACM入门之新手入门

第一章 新手入门1.ACM国际大学生程序设计竞赛简介1)背景与历史1970年在美国TexasA&M大学举办了首次区域竞赛,从而拉开了国际大学生程序设计竞赛的序幕。1977年,该项竞赛被分为两个级别:区域赛和总决赛,这便是现代ACM竞赛的开始。在亚洲、美国、欧洲、太平洋地区均设有区域赛点。19...
  • hncqp
  • hncqp
  • 2007-07-20 09:45
  • 11978

手把手教你安卓入门(一)

很多同学想学安卓应用开发,但是还没有开始就遇到了很多问题,比如资源无法下载,环境搭建遇到问题,代码不知该从何处写起。从0到1的过程让新手们抓狂。
  • anddlecn
  • anddlecn
  • 2016-05-20 15:21
  • 38539

系统架构设计入门扫盲

<br />最近负责一个项目的系统架构设计,刚开始粗粗给了个草案。经过一次修订后带着草案稿去找了一下公司首席科学家 传说中的“老天”,促膝长谈一整天,虽然被批判得一无是处,但是我却觉得异常之爽,顿时觉得在系统架构设计上已经渐渐扫盲开始进入正轨。<br /> <...
  • rcfalcon
  • rcfalcon
  • 2010-11-22 09:45
  • 1755

入门有余, 经典不足 — 小评《C#入门经典》

鉴于C#程序设计语言这本Anders写的书就像是语言规格说明, 我推荐大家阅读C#入门经典(Beginning Visual C# 2010)入门. 说实话, 看到这本书的时候, 我稍微叹了口气, 起码比那本厚如砖头的JAVA编程思想要薄啊. 另外, 其实只需要阅读第一部分, 一共才39...
  • vagrxie
  • vagrxie
  • 2013-01-11 07:21
  • 17372

RecyclerView 最佳入门

ListView和RecyclerView ListView和RecyclerView ListView和RecyclerView ListView和RecyclerView ListView和RecyclerView ListView和RecyclerView入门 入门
  • gusgao
  • gusgao
  • 2016-08-22 01:36
  • 1080

Linux入门-选择自己的发行版

选择自己的发行版是Linux入门遇到的第一个纠结,很多人都会问用什么发型版本最好?这个问题,这一直都是个问题: 1。如果是初次接触Linux的建议就选择ubuntu的就OK了,因为使用ubuntu做入门的群体应该是占很大部分; 2。如果是之前使用过Linux,想换一个发现版本的呢?建议选...
  • bestboyxie
  • bestboyxie
  • 2016-09-24 10:47
  • 416

qt简单入门

qt入门 1.首先我们先创建一个qt的空项目 1.这会生成两个文件 xx.pro xx.pro.user xx.pro文件是qt的工程文件,有点类似于vc的prj文件,或者sln文件。xx.pro.user是这个当前环境下的工程文件。(移植的时候这个文件没啥用) 以下是标准的hello ...
  • super_man_ww
  • super_man_ww
  • 2016-04-27 08:57
  • 814
    个人资料
    • 访问:75177次
    • 积分:1327
    • 等级:
    • 排名:千里之外
    • 原创:59篇
    • 转载:1篇
    • 译文:0篇
    • 评论:31条