背景 Background

公园里有个人在练开奔驰 - -!,但是总是撞在bench上 (众人曰:狼来了,快跑啊!)

描述 Description

公园里的bench与奔驰都是无敌的,不会被撞坏。
由于开奔驰的人比较"有特点",总是向上下左右四个方向开,而且只会在撞到椅子之后改变方向(起步时除外) - -!
现在他给你一张地图,上面标明 他的位置 、 公园里的bench的位置 和 他想到达的位置,可能会有冲出地图的可能
请你告诉他最少撞多少下才能到达目的地,并答应事成之后会给你一辆奔驰..............................................的照片

输入格式 InputFormat

第一行,两个数,分别表示地图的行和列,都不大于50
以下是地图,"."表示地面,"S"表示起点,"E"表示终点,"B"表示bench(什么意思呢?)
保证只有一个终点和一个起点,并不会出现其他字符

输出格式 OutputFormat

第一行,表示他能不能到达目的地。如果能,就输出"Yes"。否则,输出"No"
如果能到达目的地,就在第二行输出最少的撞击次数

样例输入 SampleInput [复制数据]

测试数据1:5 5BBBBBB...BBSE.BB...BBBBBB

测试数据2:3 3S.......E

样例输出 SampleOutput [复制数据]

测试数据1:Yes0

测试数据2:No

数据范围和注释 Hint

测试数据1:点火后直接向右走
测试数据2:四个方向都会冲出地图

来源 Source

某个经典的游戏......

思路:BFS即可
#include <iostream>
#include <cmath>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cstdlib>
#include <queue>
using namespace std;const int maxn=60;
struct qq
{int x,y,d;
} ya,pu;
queue<qq> q;
int sx,sy,l,step,n,m,cnt=0;
char s[maxn][maxn];void close()
{
exit(0);
}bool judge(int x,int y,int xx,int yy)
{cnt++;if (cnt>1E7) {printf("No\n");close();}if (s[x][y]=='E'){printf("Yes\n%d\n",step);close();}if (s[x][y]=='B'){for (int j=1;j<=4;j++){if (j==ya.d) continue;pu.x=xx;pu.y=yy;pu.d=j;q.push(pu);}return true;}return false;
}void simulate()
{ya=q.front();q.pop();if (ya.d==4){for (int i=ya.y;i>=1;i--){if (judge(ya.x,i,ya.x,i+1))return;}}if (ya.d==2){for (int i=ya.y;i<=m;i++)if (judge(ya.x,i,ya.x,i-1))return;}if (ya.d==3){for (int i=ya.x;i<=n;i++)if (judge(i,ya.y,i-1,ya.y))return;}if (ya.d==1){for (int i=ya.x;i>=1;i--)if (judge(i,ya.y,i+1,ya.y))return;}
}void work()
{step=0;while (!q.empty())q.pop();for (int i=1;i<=4;i++){ya.x=sx;ya.y=sy;ya.d=i;q.push(ya);}while (!q.empty() && step<=2500) //delete{l=q.size();for (int i=1;i<=l;i++){simulate();}step++;}
}void init()
{scanf("%d %d",&n,&m);for (int i=1;i<=n;i++){scanf("%s",s[i]);for (int j=m;j>=1;j--){s[i][j]=s[i][j-1];}s[i][0]='\0';}for (int i=1;i<=n;i++)for (int j=1;j<=m;j++){if (s[i][j]=='S'){sx=i;sy=j;}}work();printf("No\n");
}int main ()
{init();close();return 0;
}

转载于:https://www.cnblogs.com/cssystem/p/3170632.html

TYVJ P1234 - bench与奔驰相关推荐

  1. oj betch与奔驰

    Problem 38: bench与奔驰 Time Limit:1 Ms| Memory Limit:128 MB Difficulty:2 Description 公园里有个人在练开奔驰 - -!, ...

  2. d3.js 旋转图形_【IOS游戏推荐】百万畅销游戏刚从STEAM移植至IOS平台,在极端地形中冒险前进!——旋转轮胎:泥泞奔驰...

    前言 大家可以关注游戏推荐备用号: 哈士奇推荐IOS (万一失联了呢~) 哈士奇小店 哈士奇小店一些奇奇怪怪的东西需要的朋友可以扫描右边的二维码. 重要提醒到底怎么样才能不错过哈士奇君的更新呢?第一时 ...

  3. apache bench linux,linux – 如何在CentOS上安装Apache Benchmark?

    我尝试在我的centos上使用 Is there a way to install Apache Bench (ab) without installing apache解决方案安装Apache Be ...

  4. 英伟达奔驰共同发布自动驾驶系统,还自带停车功能

    大数据文摘出品 来源:VB 编译:白浩然 最近,英伟达(Nvidia)宣布为了和奔驰(Mercedes-Benz)汽车紧密合作,计划从2024年开始推出一款车载计算系统和AI基础设施,该技术于去年1月 ...

  5. TYVJ P1080 N皇后 Label:dfs PS:以前做的一道题,贴出来防忘

    描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 5来描 ...

  6. 未定义标识符 stringc/c++(20)_20款奔驰G63AMG霸气颜值 运动造型

    20款奔驰G63外观方面,采用全新的金属漆,非常亮眼又感觉很有质感,设计上依旧是熟悉的设计风格,方盒子的车身造型粗犷硬朗,前脸直瀑式的中网非常大气,两侧是圆形的几何多光束MULTIBEAM LED大灯 ...

  7. |Tyvj|动态规划|P1004 滑雪

    http://tyvj.cn/p/1004 由于考虑高度问题,确保每个值都算出来,这里用的是记忆化搜索. #include<cstdio> #include<cstring> ...

  8. BZOJ 3224: Tyvj 1728 普通平衡树 treap

    3224: Tyvj 1728 普通平衡树 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...

  9. web服务器测试web bench

    web bench是一款网站压力测试工具,常用命令:./webbench -c 10 -t 10 xxx(xxx是网址),-c是指定客户端的数目,-t是指定测试秒数. [root@localhost ...

最新文章

  1. CveService.java
  2. C#使用ExecuteReader返回DataReader既有查询结果集又有输出参数或返回值的使用注意事项...
  3. php gbk字符串 存utf8 html,php utf8 gbk 数组 互转(示例代码)
  4. Kubernetes原理浅析
  5. vue给组件传html,如何将 html 模板作为道具传递给 Vue 组件
  6. WORD2010每次启动都要配置
  7. 一步一坑学android之禁用Appt2(andriod studio3.0)
  8. oracle 查看 统计更新时间,oracle查看和更新统计表的信息
  9. 'WebElement' object is not iterable
  10. java clone()用法_java clone方法使用详解(转)
  11. QFIL进入900E或90DB模式,download fail
  12. Python -- 网络爬虫:爬取花瓣网站图片
  13. 客户需求分析8个维度_客户需求不知如何分析总结?一篇文章让你少走弯路!...
  14. matlab无法打开excel的问题
  15. C语言画直线~Bresenham方法
  16. Python 每日一记217根据词频生成词云图
  17. 入门级深度学习服务器配置方案
  18. 符号_和平精英名字特殊符号怎么打?哪些特色符号可以用?
  19. [OHIF-Viewers]医疗数字阅片-医学影像-es6解构赋值-const{}=-let{}=
  20. 信息系统项目管理师——信息化和信息系统

热门文章

  1. [TensorFlow 学习笔记-04]卷积函数之tf.nn.conv2d
  2. 谈谈java中的==和equals
  3. 7 Billion Humans游玩
  4. 为什么NoSQL数据库是启动的最佳解决方案
  5. php札记,PHP札记
  6. 前往庄园失败 当前服务器不稳定,摩尔庄园手游遇到bug怎么解决
  7. 自研大赛吃瓜群众感想篇
  8. sys/videoio.h not found
  9. 大泥王怎么调时区_卡西欧大泥王手表性能怎么样 卡西欧手表为什么叫泥王
  10. C语言中使用空的宏定义的作用