1256:献给阿尔吉侬的花束 2021-01-09
1256:献给阿尔吉侬的花束
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。
迷宫用一个R×C的字符矩阵来表示。字符S表示阿尔吉侬所在的位置,字符E表示奶酪所在的位置,字符#表示墙壁,字符.表示可以通行。阿尔吉侬在1个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一个位置,但不能走出地图边界。
【输入】
第一行是一个正整数T(1 ≤ T ≤ 10),表示一共有T组数据。
每一组数据的第一行包含了两个用空格分开的正整数R和C(2 ≤ R, C ≤ 200),表示地图是一个R×C的矩阵。
接下来的R行描述了地图的具体内容,每一行包含了C个字符。字符含义如题目描述中所述。保证有且仅有一个S和E。
【输出】
对于每一组数据,输出阿尔吉侬吃到奶酪的最少单位时间。若阿尔吉侬无法吃到奶酪,则输出“oop!”(只输出引号里面的内容,不输出引号)。每组数据的输出结果占一行。
【输入样例】
3
3 4
.S..
###.
..E.
3 4
.S..
.E..
....
3 4
.S..
####
..E.
【输出样例】
5
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int map[202][202],p[200000][4];
int xx[4]={-1,1,0,0};
int yy[4]={0,0,-1,1};
int t,r,c,x1,y1;
char ch;
void bfs(){int x,y,t=0,w=1;while(w>t){t++;for(int i=0;i<4;i++){x=p[t][1]+xx[i];y=p[t][2]+yy[i];if(x>0&&x<=r&&y>0&&y<=c&&map[x][y]==0){w++;p[w][1]=x;p[w][2]=y;p[w][3]=p[t][3]+1;map[x][y]=1;if(x==x1&&y==y1){printf("%d\n",p[w][3]);return;}} }}printf("oop!\n");
}
int main(int argc, char *argv[])
{scanf("%d",&t);for(int k=1;k<=t;k++){scanf("%d %d",&r,&c);memset(map,0,sizeof(map));memset(p,0,sizeof(p));for(int i=1;i<=r;i++)for(int j=1;j<=c;j++){cin>>ch;if(ch=='S'){map[i][j]=1;p[1][1]=i,p[1][2]=j,p[1][3]=0;}else if(ch=='E'){x1=i;y1=j;}else if(ch=='#')map[i][j]=1;}bfs();}return 0;
}
1256:献给阿尔吉侬的花束 2021-01-09相关推荐
- 信息学奥赛一本通(1256:献给阿尔吉侬的花束)
1256:献给阿尔吉侬的花束 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 7427 通过数: 3067 [题目描述] 阿尔吉侬是一只聪明又慵懒的小白鼠, ...
- 1256:献给阿尔吉侬的花束
1256:献给阿尔吉侬的花束 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 9651 通过数: 4023 [题目描述] 阿尔吉侬是一只聪明又慵懒的小白鼠, ...
- 信息学奥赛一本通 1256:献给阿尔吉侬的花束 | OpenJudge NOI 2.5 7218:献给阿尔吉侬的花束
[题目链接] ybt 1256:献给阿尔吉侬的花束 OpenJudge NOI 2.5 7218:献给阿尔吉侬的花束 [题目考点] 1. 广搜 迷宫问题 [解题思路] 广搜,迷宫问题模板题. 设结构体 ...
- 【信息学奥赛一本通】1256:献给阿尔吉侬的花束
传送门:献给阿尔吉侬的花束 我的哔哩哔哩账号 1256:献给阿尔吉侬的花束 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 1696 通过数: 685 [题 ...
- 2021寒假每日一题《献给阿尔吉侬的花束》
献给阿尔吉侬的花束 题目来源:<信息学奥赛一本通> 时间限制: 1000 m s 1000ms 1000ms 内存限制: 64 m b 64mb 64mb 题目描述 阿尔吉侬是一只聪明又慵 ...
- 27、Acwing 2021/2/5 1101. 献给阿尔吉侬的花束
27.Acwing 2021/2/5 1101. 献给阿尔吉侬的花束 献给阿尔吉侬的花束 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫. 今天它要挑战一个非常大的迷宫,研究员们为了 ...
- 1101. 献给阿尔吉侬的花束
1101. 献给阿尔吉侬的花束 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫. 今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的 ...
- AcWing 1101. 献给阿尔吉侬的花束【BFS】
题目链接:AcWing 1101. 献给阿尔吉侬的花束 阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫. 今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点 ...
- #009#献给阿尔吉侬的花束
前言 日志,各位看官就当乐子看吧. 正经人谁写日记啊?!! --鹅城县长 不用想乱七八糟的,写就完事儿了.今天没背八股文.(确实是因为看不下去题,没成就感) VideosTV 地址:https://g ...
最新文章
- Christmas Present
- python列表每行查找字符串,python - 用python查找子字符串列表成字符串列表 - SO中文参考 - www.soinside.com...
- 自学编程成功概率有多少可能
- Google Guava EventBus和Java 7 WatchService用于事件编程
- solidworks模板_工程师实用高级操作,Solidworks自定义属性链接到工程图模板
- Java多线程(线程同步)
- 【Java】关于Java编程软件idea快捷键的使用
- Python isdigit() isalnum()
- thymeleaf点击onclick事件
- 22计算机408考研—数据结构—排序(详解加例题)
- Kali安装使用文泉驿字体
- BS7799, ISO/IEC 17799, ISO/IEC 27001容易混淆
- 1000+常用Python库一览
- vue-echarts教程
- 装什么软件测试笔记本耐用,我买了新电脑,用什么软件测试比较好?
- MIUI主题风格_一种Android系统换肤功能的设计
- html5 励志名言,励志名言五十条
- 2020年Web前端学习网站导航
- oracle静默创建实例linux,linux CentOS7下快速静默安装Oracle11GR2数据库并创建实例
- android 事件派发流程详解