NYOJ1100---WAJUEJI which home strong!

WAJUEJI which home strong!

时间限制:1000 ms  |  内存限制:65535 KB

难度:2

描述

在一个山沟里,姐弟俩同时考上了大学。但由于家里拮据,所以这并不是什么好消息。父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来。当时的姐姐已经决定放弃上学的机会。没想到第二天天还没亮,弟弟就偷偷带著几件破衣服和几个乾巴馒头走了,在姐姐枕边留下一个纸条:姐,你别愁了,考上大学不容易,我出去打工供你。弟。姐姐握著那张字条,趴在炕上,失声痛哭。那一年,弟弟17岁,姐姐20岁。姐姐用父亲满村子借的钱和弟弟在工地裏搬水泥挣的钱终於读到了大三。一天姐姐正在寝室里看书,同学跑进来对姐姐说,有个老乡在找你。姐姐很纳闷,走出去后,远远地看见弟弟,穿著满身是水泥和沙子的工作服。姐姐说,你怎么和我同学说你是我老乡啊?
他笑著说,你看我穿的这样,说是你弟,你同学还不笑话你?姐姐鼻子一酸,眼泪就落了下来。弟弟赶忙为姐姐擦掉眼泪,说:姐,你别哭,我这次来是想让你帮我打听一下,学挖掘机哪家强?

在你的帮助下,弟弟踏上了去蓝翔的路。

那么问题就来了。

输入

第一个数T,T组测试数据。

两个数 n, m; ( 0< n , m <= 100 ) 表示一个h行m列的二维地图。

接下来n行每行m 个字符。

‘s’表示弟弟目前所在位置。

‘# ’表示此处为一座山。为了节省体力,不从此处通行。

从‘A’-‘Z’表示各地的经济水平,对应1-26,路过对应字符的地区需要交对应的生活费。

‘l’表示蓝翔技校的所在地。

s 与 l 均为小写字母。

弟弟只能走四个方向。

输出

输出一个数表示弟弟到达蓝翔需要的生活费最小是多少。

如果不能到达,输出 -1。

样例输入

3

3 5

#sVGF

A##ZA

lCDBC

3 3

sAB

ABS

ABl

3 3

s#B

###

ABl

样例输出

48

4

-1

分析:这是一道简单的BFS+优先队列问题,还是第一次接触优先队列写进BFS里面,代码很快就写出来了。可是一直出现wrong,原因是我把最后的控制条件写错了,让学长改了好长时间才过去,代码如下:

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
int dx[]={1,0,0,-1};
int dy[]={0,1,-1,0};
char mp[200][200];
int vis[200][200];
int t,n,m;
struct dot
{
    int x,y;
    int time;
    friend bool operator<(dot a,dot b)                //优先对列的定义
    {

        return a.time>b.time;
    }

};
inline bool in(dot gx)
{
    if(gx.x>=0&&gx.x<n&&gx.y>=0&&gx.y<m)
        return true;
    return false;
}

int main()
{
    cin>>t;
    while(t--)
    {
        dot gx;
        cin>>n>>m;
         memset(vis,0,sizeof(vis));
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
               {
                   cin>>mp[i][j];
                   if(mp[i][j]=='s')
                   {
                       gx.x=i;
                       gx.y=j;
                       gx.time=0;
                   }

               }
              vis[gx.x][gx.y]=1;
               priority_queue<dot>q;
               while(!q.empty())
                 q.pop();
                 q.push(gx);
                 int step=0;
                 while(!q.empty())
                 {
                    dot tmp,next;
                    tmp=q.top(),q.pop();
                    for(int i=0;i<4;i++)
                    {
                        next.x=tmp.x+dx[i];
                        next.y=tmp.y+dy[i];
                        next.time=tmp.time+mp[next.x][next.y]-'A'+1;
                        if(mp[next.x][next.y]=='l')
                        {
                            step=tmp.time;                                    //改了很多次才发现的错误
                            break;
                        }
                        if(in(next)&&mp[next.x][next.y]!='#'&&!vis[next.x][next.y])
                        {
                            vis[next.x][next.y]=1;
                            q.push(next);

                        }

                    }
                    if(step>0)
                        break;

                 }
                 if(step>0)
                    printf("%d\n",step);
                else
                    printf("-1\n") ;

    }
    return 0;

}
时间: 2024-10-07 23:03:20

NYOJ1100---WAJUEJI which home strong!的相关文章

NYOJ1100 WAJUEJI which home strong!【BFS】

WAJUEJI which home strong! 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 在一个山沟里,姐弟俩同时考上了大学.但由于家里拮据,所以这并不是什么好消息.父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来. 当时的姐姐已经决定放弃上学的机会. 没想到第二天天还没亮,弟弟就偷偷带著几件破衣服和几个乾巴馒头走了,在姐姐枕边留下一个纸条: 姐,你别愁了,考上大学不容易,我出去打工供你.弟. 姐姐握著那张字条,趴在炕上,失声痛哭. 那一年,弟弟17岁,

nyoj 1100 WAJUEJI which home strong!

WAJUEJI which home strong! 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 在一个山沟里,姐弟俩同时考上了大学.但由于家里拮据,所以这并不是什么好消息.父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来. 当时的姐姐已经决定放弃上学的机会. 没想到第二天天还没亮,弟弟就偷偷带著几件破衣服和几个乾巴馒头走了,在姐姐枕边留下一个纸条: 姐,你别愁了,考上大学不容易,我出去打工供你.弟. 姐姐握著那张字条,趴在炕上,失声痛哭. 那一年,弟弟17岁,

NY 1100 WAJUEJI which home strong!

WAJUEJI which home strong! 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 在一个山沟里,姐弟俩同时考上了大学.但由于家里拮据,所以这并不是什么好消息.父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来. 当时的姐姐已经决定放弃上学的机会. 没想到第二天天还没亮,弟弟就偷偷带著几件破衣服和几个乾巴馒头走了,在姐姐枕边留下一个纸条: 姐,你别愁了,考上大学不容易,我出去打工供你.弟. 姐姐握著那张字条,趴在炕上,失声痛哭. 那一年,弟弟17岁,

WAJUEJI which home strong!

WAJUEJI which home strong! 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 在一个山沟里,姐弟俩同时考上了大学.但由于家里拮据,所以这并不是什么好消息.父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来. 当时的姐姐已经决定放弃上学的机会. 没想到第二天天还没亮,弟弟就偷偷带著几件破衣服和几个乾巴馒头走了,在姐姐枕边留下一个纸条: 姐,你别愁了,考上大学不容易,我出去打工供你.弟. 姐姐握著那张字条,趴在炕上,失声痛哭. 那一年,弟弟17岁,

NYOJ 1100-WAJUEJI which home strong!【bfs】

WAJUEJI which home strong! 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 在一个山沟里,姐弟俩同时考上了大学.但由于家里拮据,所以这并不是什么好消息.父亲对孩子说:我就是砸锅卖铁也要把你们姐俩供出来. 当时的姐姐已经决定放弃上学的机会. 没想到第二天天还没亮,弟弟就偷偷带著几件破衣服和几个乾巴馒头走了,在姐姐枕边留下一个纸条: 姐,你别愁了,考上大学不容易,我出去打工供你.弟. 姐姐握著那张字条,趴在炕上,失声痛哭. 那一年,弟弟17岁,

OSChina 周二乱弹 —— 求借妹纸肩膀一用!

周二到了,小小编还在怀念周一,谁叫他是冬至,饺子,汤圆,肉应有尽有啊,节日就是用来吃吃吃的! @走在路上  :最近流行做烘培,都是蛋糕.面包达人,不过确实做的不错,同学发的自己做的生日蛋糕,不错吧 好漂亮,都舍不得吃吧,还是汤圆比较靠谱 @叶秀兰  :汤圆,小师妹煮汤圆- 最近天气寒冷,大家注意防寒保暖,感冒的童鞋要记得吃药药哦 @Hlulu  :吃了"开源感冒胶囊",希望快点好起来啊! 跟小小编一起来念咒语:快点好快点好- 最近,如果你的朋友不怎么说话,也开始不逗了,不发红薯照片不黑

php学习,一个简单的Calendar(2) 一个简单的活动页面

有了前面的基础,后面就是将页面展示出来. 预览图如下:1号和31号分别有活动,会一并显示出来   这里需要搞定几个问题,一个就是数据库的连接,我们用\sys\class\class.db_connect.inc.php <?php   /* * 数据库操作(数据库访问,认证等) */   class DB_Connect { /** * Stores a database object * * @var object A database object */ protected $db;   /

自动登录:Filter,Session,Cookie综合例子

初始登录Servlet: package cn.xbai.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class

Eclipse中常见问题

本文记录下在Eclipse中导入项目的过程中常见的问题. 1:The project cannot be built until the build path errors are resolved 请查阅:http://blog.sina.com.cn/s/blog_4cb58ce60100iee8.html 2:Project 'XXX' is missing required Java project:'YYYY' . 此时可以在依赖的Jar中找到对应的Jar但是依然有这个错.其实问题的原