B - 瑶瑶带你玩激光坦克

Time Limit:  2000/1000MS (Java/Others)     Memory Limit:  256000/128000KB (Java/Others)
Submit  Status

Problem Description

有一款名为激光坦克的游戏,游戏规则是用一个坦克发出激光来达到一些目的,激光可以通过一些镜子反射。

机智的瑶瑶为了显示自己的智商高于常人,把这个游戏改造了一下,变成了用激光攻击敌人的游戏。

瑶瑶想知道射一次激光最多可以攻击到多少个敌人。

PS: 由于激光很强大,可以在击中敌人后穿过它,而瑶瑶自己的坦克由于有特殊装置,所以不会被激光击中,激光也会直接穿过它

Input

第1行两个正整数n, m (1 ≤ n, m ≤ 1000)表示地图大小,接下来n行每行m个字符描述地图。

. 表示此处为空地

* 表示此处为障碍(激光不可穿过,激光路径打到障碍时就结束)

T 代表瑶瑶的坦克位置

E 代表敌人

/ 代表按 左下-右上 放置的镜子

\ 代表按 左上-右下 放置的镜子

Output

一个整数代表瑶瑶向某个方向发射激光后最多可以攻击到的敌人数。

Sample Input

5 5
.*/E\
E*.*.
E*TEE
\.../
.*\EE

Sample Output

4

题目大意:给出一张地图,瑶瑶从开始位置,射出激光,问最多能打到多少个敌人。激光可以通过地图上的镜子反射,并且不会伤到瑶瑶自己,而是穿过她。

分析:直接用dfs递归的话,会爆栈,导致RE。所以,直接用循环来模拟全过程。

代码:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int maxn = 1111;char g[maxn][maxn];
char mp[maxn][maxn];
int n, m;
int sr, sc, ans, cnt;
int dr[4] = {-1, 0, 1, 0};
int dc[4] = {0, 1, 0, -1};
int vis[maxn][maxn][5];void dfs(int r, int c, int i) {while(g[r][c] !='*' && !vis[r][c][i]) {vis[r][c][i] = 1;if(g[r][c] == 'E') {g[r][c] = '.';cnt++;}else if(g[r][c] == '/') {if(i == 0) i = 1;else if(i == 1) i = 0;else if(i == 2) i = 3;else if(i == 3) i = 2;}else if(g[r][c] == '\\') {if(i == 0) i = 3;else if(i == 1) i = 2;else if(i == 2) i = 1;else if(i == 3) i = 0;}r +=dr[i], c += dc[i];}return;
}int main() {scanf("%d%d", &n, &m);memset(mp, '*', sizeof(mp));for(int i = 1; i <= n; i++)scanf("%s", mp[i]+1);for(int i = 1; i <= n; i++)for(int j = 1; j <= m; j++) {if(mp[i][j] == 'T') {sr = i, sc = j;break;}}ans = 0;for(int i = 0; i < 4; i++) {memset(vis, 0, sizeof(vis));for(int j = 0; j < n+2; j++)for(int k = 0; k < m+2; k++)g[j][k] = mp[j][k];cnt = 0;dfs(sr, sc, i);ans = max(ans, cnt);}printf("%d\n", ans);return 0;
}

瑶瑶带你玩激光坦克(暴力)相关推荐

  1. ACdream 1099——瑶瑶的第K大——————【快排舍半,输入外挂】

    瑶瑶的第K大 Time Limit:2000MS     Memory Limit:128000KB     64bit IO Format:%lld & %llu Submit Status ...

  2. 手把手带你玩转需求预测-需求预测方法介绍

    系列文章目录 手把手带你玩转需求预测 文章目录 系列文章目录 前言 时序预测算法类型 第一代:统计时序预测算法 第二代:经典机器学习方法 第三代:深度学习预测算法 总结 前言 预测算法的本质是从历史数 ...

  3. [小说]魔王冢(34)卢瑶瑶

    那来人正是令他魂牵梦绕及至浪荡红尘的初恋情人,卢瑶瑶. 本乃昔日相伴之挚爱红颜,今却已生死两相隔.李翊轩早已忍耐不住激动的心情,顷刻间便泪如雨下.他快步上前,一把将她揽入怀中,死死地搂住不放. &qu ...

  4. 网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎

    网络安全-信息收集- 谷歌浏览器插件收集信息,谷歌hacking搜索语法-带你玩不一样的搜索引擎 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作 ...

  5. cad的文字嵌入线条_带你玩转CAD!

    CAD画图已经成为化工人的必备技能.什么,这么多CAD必备技巧你居然还不知道?我该拿什么拯救你,我最最最最最最亲爱的旁友!!!下面给大家整理了50个相见恨晚的CAD技巧,带你玩转CAD!!相见恨晚的5 ...

  6. 对讲机的那点事:带你玩转LD800数字车载台读、写频操作:一

    车载电台在车队行进过程中是最理想的联络指挥工具,它可以让车队步调一致地高效行驶,不会出现跟车掉队的情况.今天小编就带你玩转LD800数字车载台读写频操作: 基本参数: ◆256个信道,大屏幕彩屏显示 ...

  7. each 数据获取attr_调用高德POI数据,带你玩转长沙

    长沙CITY,长沙SHOW 长沙C-BLOCK,长沙FLOW 长沙妹驼,叫长沙GIRL 说到长沙,大家第一想到的可能就是小吃,当然来长沙旅游,不光只是为了吃,这吃喝玩乐,咱都得来一套是吧.基于此,我调 ...

  8. 【对讲机的那点事】带你玩转灵通LT33公网集群对讲机

    网集群对讲机已经遍布各个行业,而且公网集群对讲机与常规对讲机相比,具有更加强大的通信对讲调度能力,且功能更多.保密性更好,符合用户对无线通信的要求.今天小编就手把手教你玩转灵通LT33公网集群对讲机: ...

  9. java cxf 入口统一_分分钟带你玩转 Web Services【2】CXF

    在实践中一直在使用 JAX-WS 构建 WebService 服务,服务还是非常稳定.高效的. 但还是比较好奇其他的 WebService 开源框架,比如:CXF/Axis2/Spring WS等. ...

最新文章

  1. websphere安装应用失败_如何使用安卓手机给任天堂Switch安装游戏NSUSBloader mobile
  2. 开发日记-20190529 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  3. 嵌入式C语言之位运算 ..|.~.
  4. 【做题记录】[SCOI2009]围豆豆
  5. vue组件自定义v-model
  6. A - 敌兵布阵 (HDU - 1166)
  7. mysql查询报错2014_mysql Hibernate 查询时用别名报错
  8. git 怎么拉取线上代码到本地进行合并_android studio如何使用git提交、拉取、合并代码的操作...
  9. 执行sc query mysql,sc delete mysql没有反应
  10. java spark 环境_在 IntelliJ IDEA 中配置 Spark(Java API) 运行环境
  11. 【路径规划】基于matlab遗传算法求解多物流中心开放式车辆路径规划【含Matlab源码 017期】
  12. Android零散技术点
  13. 查看CentOS版本信息
  14. 金融衍生品交易系统(场内交易VS.场外交易)的架构特点
  15. ERP开源框架 + 二次开发平台 介绍
  16. C++ float转换int
  17. Windows驱动程序开发 - 初识驱动
  18. “魅力河南 智慧富民——互联网+旅游扶贫项目”签约仪式在郑州举行
  19. my ReadBook_guanlixinxixitong / 02382 / MIS / mis / 20130112 PM
  20. CSDN联合安恒信息 共同发布安全开发工程师能力标准

热门文章

  1. 北京龙泉寺,学霸寺院,低于985好意思进吗?
  2. [DA45] 使用SVM进行乳腺癌检测
  3. springboot+微信小程序老年人健康保障管理系统毕业设计源码302303
  4. shell脚本执行错误
  5. WEB SKILL HOT KEY
  6. 由参数方程确定的函数的一阶导数与二阶导数
  7. 【转】关于相关性的7个最常见的问题
  8. 如何使用红杏的公益代理
  9. java jre 32_【JRE】JRE32/64位官方下载 V8.0 官方版-趣致软件园
  10. HTML班级网页设计 基于HTML+CSS+JS制作我们的班级网页(web前端学生网页设计作品)...