sdut oj 3474 汤圆の拯救计划
汤圆の拯救计划
Time Limit: 1000 ms Memory Limit: 65536 KiB
Submit Statistic
Problem Description
又到了汤圆星球一年一度的汤圆节了,但是大魔王却过来把汤圆公主抓走了Σ( ° △ °|||)︴
身为汤圆骑士的QAQ蒟蒻自然而然的肩负着拯救汤圆的使命
QAQ蒟蒻经历了千辛万苦(并没有)之后,来到了大魔王的城堡,根据情报,汤圆公主就被大魔王放在城堡内,然后QAQ蒟蒻发现自己是一个路
痴,所幸的是他拿到了大魔王的城堡的地图,而且在这上面标注了自己和汤圆公主的位置,那么问题来了,聪明的你能帮他计算出需要多少单位
的时间来赶到汤圆公主的位置吗?
Ps:QAQ蒟蒻每一次都可以移动到相邻的非墙的格子中,每次移动都要花费1个单位的时间
有公共边的格子定义为相邻
Input
一开始为一个整数T代表一共有T组数据
每组测试数据的第一行有两个整数n,m (2<=n,m<=300)
接下来的n行m列为大魔王的迷宫,其中
’#’为墙壁,‘_‘为地面
A代表QAQ蒟蒻,O代表汤圆公主:
Output
一组数据输出一个整数代表从QAQ蒟蒻到汤圆的位置的最短时间
如果QAQ蒟蒻不能到达汤圆的位置,输出-1
Sample Input
2
3 3
__A
_##
__O
2 2
A#
#O
Sample Output
6
-1
Hint
Source
QAsQ
一个bfs的题。
首先找到QAQ蒟蒻和公主的位置,然后从QAQ蒟蒻的位置开始遍历,QAQ蒟蒻能走的方向只有四个,而且不能超出地图的范围
,对QAQ蒟蒻走的步数进行计数,直到QAQ蒟蒻没有路可走或者找到公主为止。
#include <iostream>
#include <queue>using namespace std;struct node{int x, y, n;
};
bool Map[300][300]; //图
int v[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}}; //下一步可能走的方向
int n, m, x, y, xx, yy;
void bfs();
int main(){int t;char c;cin >> t;while(t--){cin >> n >> m;for(int i = 1; i <= n; i++){for(int j = 1; j <= m; j++){cin >> c;if(c == '_') Map[i][j] = true;else if(c == '#') Map[i][j] = false;else if(c == 'A'){ //存下QAQ的位置x = i;y = j;}else{ // 存下公主的位置//Map[i][j] = true;xx = i;yy = j;}}}bfs();}return 0;
}void bfs(){queue <node> q;node p, r;p.x = x;p.y = y;p.n = 0; //计步q.push(p);while(!q.empty()){p = q.front();q.pop();for(int i = 0; i < 4; i++){r.x = p.x + v[i][0];r.y = p.y + v[i][1];r.n = p.n + 1;if(r.x == xx && r.y == yy){ //找到公主cout << r.n <<endl;return;}if(r.x >= 1 && r.x <= n && r.y >= 1 && r.y <= m && Map[r.x][r.y]){ // 这一步可以走Map[r.x][r.y] = false;q.push(r);}}}cout << "-1" <<endl; //前面没路了return;
}
sdut oj 3474 汤圆の拯救计划相关推荐
- SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )...
图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...
- wegame饥荒一直连接中_23万人捧场热血传奇怀旧版,WeGame拯救计划,前景如何?...
日前,<热血传奇怀旧版>正式于WeGame上线,截至开服前,平台共有近23万人预约了这款游戏,一跃成为平台最热游戏. 虽然和当年开服半年,便有30万在线人数的成绩还有所距离,但在目前的端游 ...
- DAY3-摸鱼-GG修改器的使用与装备代码的推算-勇士拯救计划
昨天偶然得知了GG修改器.实在难耐好奇心.又拿了好几个小游戏实验.尝试了好几款之后发现都能改,但是就游戏体验而言还是勇士拯救计划打击感最好.就拿TA做例子. 首先是入坑GG,这位博主的帖子很不错,我从 ...
- 喵帕斯之副食店 (sdut oj)
** 喵帕斯之副食店 (sdut oj) ** Problem Description 莲酱又去副食店买吃的去惹.现在莲酱有一些不同面额硬币,和一个非常喜欢的糖果. 但是莲酱不知道自己能够买多少颗糖果 ...
- 年中Flag拯救计划:寻找年中Flag挑战王!
来咯来咯~ 福利来咯~ 寻找年中Flag挑战王 2020年初,你立下的Flag,是已摇摇欲坠还是在按部就班地进行中?请结合关键词:读书.健身.就业.跳槽.加薪.考证-展开分享~ 参与方式 打开APP手 ...
- UOJ308. 【UNR #2】UOJ拯救计划 解题报告
文章目录 题目链接 解题思路 详细代码 题目链接 UOJ308. [UNR #2]UOJ拯救计划 解题思路 首先,我们可得答案 a n s = ∑ i = 1 k A k i ∗ [ 恰 好 选 择 ...
- LJJ王国的致富修路计划 sdut oj
LJJ王国的致富修路计划 Problem Description 众说周知LJJ王国有着奇异的结构,因为LJJ国王喜欢素数,所以王国里的路的结构都和素数有关.现在LJJ国王又双叒叕修路了.现有n个要连 ...
- 小姐姐拯救计划之我的NAS有ipv6域名之蛇皮操作
正文前 想骚话ing- 继续想- 欢迎一键三连- 正文 当我们有了ipv6地址时,一定会发愁,面对着这一长串不明的字符,心想,有这功夫不如记车牌号什么ipx582之类的-又跑题了.手里正好有一个域名, ...
- SDUT OJ单个字符输入和输出(顺序结构)
SDUT OnlineJudge #include<iostream> #include<string.h> using namespace std; int main() { ...
最新文章
- python代码雨代码复制_python实现跨excel sheet复制代码实例
- ADempiere 360LTS 地址(Address)的中国格式定制
- linux 加入ad 用ssh,使用samba验证AD用户,允许AD用户登录到linux
- CentOS7开发环境搭建(2)
- python的pow(-2,3,5)=?
- Ubuntu backlight
- HTML5 — 知识篇总结《II》【HTML5大力支持的语义化思想与规范】
- Linux学习之CentOS(一)--CentOS6.5环境搭建
- 视频、网络传输速率科普
- 认识计算机硬件.ppt,认识计算机硬件完整ppt课件
- python爬取豆瓣top250电影名称_Python--爬取豆瓣TOP250电影信息
- linux 软件包kbd 位置,kbd-audio:通过麦克风来捕获和分析键盘输入的工具
- 3、文件、函数练习题
- 机器人的自述作文_机器人的自述作文
- Windows10 官方原版镜像下载途径 Label:win10解决方案
- vue使用高德api 定位获取位置信息 positionLocation.js及 USERKEY_PLAT_NOMATCH报错
- 一个JAVA程序员成长之路分享
- MOS管开关时的米勒效应——详细分析
- Fabric-samples asset-transfer-basic 链码部署与升级(Fabric 2.4.4)
- V3000完全拆解【转帖】