WAJUEJI which home strong!
来源:互联网 发布:java身份证格式验证 编辑:程序博客网 时间:2024/04/28 00:05
点击打开链接
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
解析:有题意知道要对数据进行遍历,并找到花费最少的路线,所以应该用广度优先搜索(BFS)。
#include<cstdio>#include<algorithm>#include<cstring>#include<cstdlib>#include<queue>using namespace std;int n,m,vis[105][105],stx,sty;int fx[4]={-1,1,0,0},fy[4]={0,0,-1,1};char map[105][105];struct record{int x;int y;int mon;friend bool operator < (record a,record b){return a.mon > b.mon;}}t,e;priority_queue<record> q;bool check(int x,int y){if(x>=0&&y>=0&&x<n&&y<m&&!vis[x][y]&&map[x][y]!='#')return true;return false;}void bfs(){e.x=stx;e.y=sty;e.mon=0;while(!q.empty()){q.pop();}q.push(e);while(!q.empty()){e=q.top();q.pop();for(int i = 0; i < 4; i ++){ t=e; //每次for循环使t点初始位置不变,不能省略 t.x+=fx[i];t.y+=fy[i];if(check(t.x,t.y)){if(map[t.x][t.y]=='l'){printf("%d\n",t.mon);return ;}else{t.mon+=map[t.x][t.y]-'A'+1;vis[t.x][t.y]=1;q.push(t);}}}}puts("-1");}int main(){int t;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m); for(int i = 0 ; i < n ; i ++)scanf("%s",map[i]);for(int i = 0; i < n ; i ++){for(int j = 0 ;j < m; j ++){if(map[i][j] == 's'){stx=i;sty=j;map[i][j]='#';}} } memset(vis,0,sizeof(vis)); bfs();}}
阅读全文
0 0
- WAJUEJI which home strong!
- WAJUEJI which home strong!
- WAJUEJI which home strong!
- WAJUEJI which home strong!
- WAJUEJI which home strong!
- WAJUEJI which home strong!
- WAJUEJI which home strong!
- WAJUEJI which home strong!
- NYOJ1100---WAJUEJI which home strong!
- 1100 WAJUEJI which home strong!
- NYOJ WAJUEJI which home strong!
- NYOJ1100 WAJUEJI which home strong!【BFS】
- NY 1100 WAJUEJI which home strong!
- nyoj 1100 WAJUEJI which home strong!
- NYOJ 1100 WAJUEJI which home strong!
- NYOJ--1100--WAJUEJI which home strong!
- nyoj--1100--WAJUEJI which home strong!(bfs)
- BFS+优先级队列-WAJUEJI which home strong!
- Mysql 0基础进阶之mysql介绍《01》
- 【消息队列MQ】各类MQ比较
- IntelliJ IDEA中Dependencies红色波浪线报错(缺少Dependency)的解决办法
- 通过python爬虫统计?站此时直播在线总人数
- 详解jQuery each() 方法
- WAJUEJI which home strong!
- hadoop初识之四:HDFS、Yarn及mapreduce 回顾,配置文件的补充及yarn日志聚集功能配置
- Jquery学习笔记——第一章 Jquery入门及基础语法
- 修改网卡ens33为eth0
- 删除无头单链表中的节点
- 51nod 1536 不一样的猜数游戏
- HDU 1004 (求最频繁字符串)
- iOS UITextView设置边距的正确方式
- Java 注解