NYOJ 1100 WAJUEJI which home strong! (BFS)
来源:互联网 发布:js encodeuri 调用两次 编辑:程序博客网 时间:2024/04/26 07:29
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。 - 样例输入
33 5#sVGFA##ZAlCDBC3 3sABABSABl3 3s#B###ABl
- 样例输出
484-1
#include <iostream>#include <cstring>#include <queue>using namespace std;int t, n, m;char map[110][110];bool vis[110][110];int dir[4][2] = {1, 0, -1, 0, 0, 1, 0, -1};int flag, sx, sy, ex, ey, min1;struct node{ int x, y, sum; friend bool operator < (const node &a, const node &b) { return a.sum > b.sum; }};int bfs(){ priority_queue<node> q; node t1, t2; t1.x = sx, t1.y = sy, t1.sum = 0; vis[t1.x][t1.y] = 1; q.push(t1); while (!q.empty()){ t1 = q.top(); q.pop(); for (int i = 0; i < 4; i++){ t2.x = t1.x + dir[i][0]; t2.y = t1.y + dir[i][1]; t2.sum = t1.sum; if (t2.x >= 0 && t2.x < n && t2.y >= 0 && t2.y < m && !vis[t2.x][t2.y] && map[t2.x][t2.y] != '#'){ if (t2.x == ex && t2.y == ey) return t2.sum; t2.sum += map[t2.x][t2.y] - 'A' + 1; q.push(t2); vis[t2.x][t2.y] = 1; } } } return -1;}int main(){ int sum; cin >> t; while (t--){ memset(vis, 0, sizeof(vis)); flag = 0, sum = 0, min1 = 9999; cin >> n >> m; for (int i = 0; i < n; i++){ cin >> map[i]; for (int j = 0; j < m; j++){ if (map[i][j] == 's') sx = i, sy = j; if (map[i][j] == 'l') ex = i, ey = j; } } cout << bfs() << endl; } return 0;}
0 0
- nyoj--1100--WAJUEJI which home strong!(bfs)
- NYOJ 1100-WAJUEJI which home strong!【bfs】
- NYOJ 1100 WAJUEJI which home strong! (BFS)
- NYOJ 1100 WAJUEJI which home strong!(BFS+优先队列)
- NYOJ 1100 WAJUEJI which home strong(BFS+优先队列)
- NYOJ--1100 WAJUEJI which home strong!【BFS,优先队列】
- nyoj 1100 WAJUEJI which home strong! 【简单BFS】
- NYOJ - 1100 - WAJUEJI which home strong!(BFS变形,优先队列)
- nyoj 1100 WAJUEJI which home strong!( BFS+优先队列)
- nyoj 1100 WAJUEJI which home strong!
- NYOJ 1100 WAJUEJI which home strong!
- NYOJ--1100--WAJUEJI which home strong!
- WAJUEJI which home strong! nyoj 1100
- NYOJ--1100--WAJUEJI which home strong!
- NYOJ 题目1100 WAJUEJI which home strong!(BFS,优先队列)
- NYOJ WAJUEJI which home strong!
- NYOj-WAJUEJI which home strong!-BFS + 优先队列
- 1100 WAJUEJI which home strong!
- 高性能IO设计的Reactor和Proactor模式
- Openv Switch 完全使用手册
- Hexo在Mac上重新安装
- 关于ubuntu中利用crontab设置定时任务的问题
- Plus One 给一个数加上1
- NYOJ 1100 WAJUEJI which home strong! (BFS)
- System.getProperty(String key)的用法
- Semi-Persistent Scheduling (SPS)
- 清除xcode中的Welcome to Xcode中的最近打开的文件
- Apache22域名绑定及万网二级域名解析
- Jmeter之http测试及脚本录制
- Oracle时间类型数据为0的bug(0000-0-0)
- contos连接互联网配置选项
- 关于struts2 中result type="stream"