-
-
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
-
第一个数T,T组测试数据。
三天就做着一道题不过也算是初步学了优先队列
-
-
#include<cstdio>
02.
#include<cstdlib>
03.
#include<cstring>
04.
#include<queue>
05.
using
namespace
std;
06.
struct
Node{
07.
int
x,y,fee;
08.
friend
bool
operator<(Node a,Node b){
09.
return
a.fee>b.fee;
10.
}
11.
}s;
12.
char
map[110][110];
13.
int
starx,stary,endx,endy,m,n,mov[][2]={1,0,-1,0,0,1,0,-1},vis[110][110];
14.
int
BFS(
int
h,
int
c){
15.
priority_queue<Node>Q;
16.
int
xx,yy;
17.
s.x=h;s.y=c;
18.
vis[h][c]=1;
19.
Q.push(s);
20.
Node u,v;
21.
s.fee=0;
22.
while
(!Q.empty()){
23.
u=Q.top();Q.pop();
24.
h=u.x;c=u.y;
25.
for
(
int
i=0;i<4;++i){
26.
xx=h+mov[i][0];
27.
yy=c+mov[i][1];
28.
if
(xx>=0&&xx<m&&yy>=0&&yy<n&&vis[xx][yy]==0&&map[xx][yy]!=
'#'
){
29.
v=u;
30.
if
(xx==endx&&yy==endy)
31.
return
v.fee;
32.
v.x=xx;
33.
v.y=yy;
34.
vis[xx][yy]=1;
35.
v.fee+=map[xx][yy]-
'A'
+1;
36.
Q.push(v);
37.
}
38.
}
39.
}
40.
return
-1;
41.
}
42.
int
main()
43.
{
44.
int
i,j,p;
45.
while
(
scanf
(
"%d"
,&p)==1){
46.
while
(p--){
47.
scanf
(
"%d%d"
,&m,&n);
48.
for
(i=0;i<m;++i){
49.
getchar
();
50.
for
(j=0;j<n;++j){
51.
scanf
(
"%c"
,&map[i][j]);
52.
if
(map[i][j]==
's'
){starx=i;stary=j;}
53.
if
(map[i][j]==
'l'
){endx=i;endy=j;}
54.
}
55.
}
56.
memset
(vis,0,
sizeof
(vis));
57.
printf
(
"%d\n"
,BFS(starx,stary));
58.
}
59.
}
60.
return
0;
61.
}
-
-
-
-
-
-
-
详细解决方案
nyoj WAJUEJI which home strong!
热度:41 发布时间:2023-12-17 09:14:10.0
相关解决方案
反射 能够查看元数据的类型,等信息的一种能力。
- Vista Home Pre IIS7.0 为什么小弟我没有安装windows集成身份验证选项
- webSphere6.0 的JAVA HOME,该怎么解决
- Far Away From Home(中英对照歌词:)~该如何解决
- Far Away From Home(中英对照歌词:)~解决思路
- Vista Home Basic 怎的安装 Rational Rose 2003
- Vista Home Basic 怎样安装 Rational Rose 2003,该如何解决
- 页面字体全是粗体,设置font-weight:normal也不行,只有用<strong>标签才可以恢复正常!该如何处理
- ThinkPHP框架中 模板不存在[home//Tpl/default/Public/success.html]是什么回事?解决方法
- ??????????????“the king is baby and strong!”?????????,该如何解决
- 最近看到一个go-home(订票)的软件,帮小弟我讲讲原理
- 二、Java参数传递方法
- 第六种:Eclipse版本更新
- Ubuntu 上添加eclipse 至dash home
- 创建用户:
- 4、OC的学习方法
- 1.递归删除指定目录下的 .git、.svn 文件
- @proterty(strong) 中的strong是什么意思,该如何解决
- @proterty(strong) 中的strong是什么意思解决思路
- 在vista home basic下装了sql server2005企业版无服务器可用要怎么处理
- 一、机制
- 2. 在Android手机上为什么我想完全关闭的程序关不了?
- 以下是 PHP 二进制文件(即 php.exe 程序)提供的命令行模式的选项参数,您随时可以通过 PHP -h 命令来查询这些参数。
- 第二部分
- 管理Bitmap内存
- Android 中的 BACK 跟 HOME 按钮的区别
- Android statusBar增添back,home,menu按钮
- android home screen一个有关问题
- 直接插入排序 (Straight Insertion Sort)
- 数组的等量代换:冒泡排序