题目:

问题描述
小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。
  方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。
  每个单位时间,小明的角色必须向上下左右四个方向相邻的方格中的一个移动一格。
  经过很多次尝试,小明掌握了方格图的安全和危险的规律:每一个方格出现危险的时间一定是连续的。并且,小明还掌握了每个方格在哪段时间是危险的。
  现在,小明想知道,自己最快经过几个时间单位可以达到第n行第m列过关。
输入格式
输入的第一行包含三个整数n, m, t,用一个空格分隔,表示方格图的行数n、列数m,以及方格图中有危险的方格数量。
  接下来t行,每行4个整数r, c, a, b,表示第r行第c列的方格在第a个时刻到第b个时刻之间是危险的,包括a和b。游戏开始时的时刻为0。输入数据保证r和c不同时为1,而且当r为n时c不为m。一个方格只有一段时间是危险的(或者说不会出现两行拥有相同的r和c)。
输出格式
输出一个整数,表示小明最快经过几个时间单位可以过关。输入数据保证小明一定可以过关。
样例输入
3 3 3
2 1 1 1
1 3 2 10
2 2 2 10
样例输出
6
样例说明
第2行第1列时刻1是危险的,因此第一步必须走到第1行第2列。
  第二步可以走到第1行第1列,第三步走到第2行第1列,后面经过第3行第1列、第3行第2列到达第3行第3列。
评测用例规模与约定
前30%的评测用例满足:0 < n, m ≤ 10,0 ≤ t < 99。
  所有评测用例满足:0 < n, m ≤ 100,0 ≤ t < 9999,1 ≤ r ≤ n,1 ≤ c ≤ m,0 ≤ a ≤ b ≤ 100。

已AC的代码:

#include <stdio.h>
#include <iostream>struct posdata
{int time;int newtime;int dmin;  //危险时间的开始int dmax;  //危险时间的结束
};
typedef struct posdata posdata;posdata data[100 + 1][100 + 1];int m, n, t;
int r, c, a, b;#define isDanger(a,b,t) (data[a][b].dmin<=t && data[a][b].dmax>=t)int main(void)
{int i, j;int ntime;scanf("%d%d%d", &n, &m, &t);for (i = 1;i<n + 1;++i)for (j = 1;j<m + 1;++j)data[i][j] ={ -1, -1, -1, -1 };for (i = 0;i<t;++i){scanf("%d%d%d%d", &r, &c, &a, &b);data[r][c] ={ -1, -1, a, b };}data[1][1].time = 0;//1000 is a max numfor (ntime = 0;ntime<1000;++ntime)  //记录当前经过的时间{for (i = 1;i<n + 1;++i)  //行for (j = 1;j<m + 1;++j)  //列if (data[i][j].time == ntime){if (i != n && ! isDanger(i + 1, j, ntime + 1))  //往下走data[i + 1][j].newtime = ntime + 1;if (j != m && ! isDanger(i, j + 1, ntime + 1))  //往右走data[i][j + 1].newtime = ntime + 1;if (i != 1 && ! isDanger(i - 1, j, ntime + 1))  //往上走data[i - 1][j].newtime = ntime + 1;if (j != 1 && ! isDanger(i, j - 1, ntime + 1))  //往左走data[i][j - 1].newtime = ntime + 1;}for (i = 1;i<n + 1;++i)for (j = 1;j<m + 1;++j)data[i][j].time = data[i][j].newtime;if (data[n][m].time != -1)break;}printf("%d", ntime + 1);return 0;
}

CCF201604-4 游戏相关推荐

  1. CCF201604-4 游戏(100分)

    试题编号: 201604-4 试题名称: 游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站 ...

  2. 伍六七带你学算法 进阶篇-生命游戏

    有趣的算法题–生命游戏 难度-中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 想要体验生命游戏的小伙伴可以到这里-->生命游戏 进入 ...

  3. 自制青蛙跳台阶小游戏~

    青蛙跳台阶小游戏 1.概念(concept)文档 楔子(Setting):千百年来,人们在贬低别人时,常用井底之蛙来描述那个人,但这却让青蛙不开心了,于是青蛙决定跳出井底,为自己讨一个公道. 玩法(G ...

  4. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  5. Intel GPU实现游戏与数据中心

    Intel GPU实现游戏与数据中心 在Intel Architecture Day上,Intel谈到了面向游戏玩家的Xe-HPG架构Alchemist GPU以及面向数据中心的Xe-HPC架构GPU ...

  6. 英特尔 i5-9400F,或将成为本年最高性价比的游戏处理器

    英特尔 i5-9400F,或将成为本年最高性价比的游戏处理器 一直以来,每一代英特尔 i5 系列都是很多游戏玩家主要的选购对象,它和任何一款显卡似乎都能够很好的搭配起来.可凡事都有美中不足的地方,比如 ...

  7. 人脸照片自动生成游戏角色_ICCV2019论文解析

    人脸照片自动生成游戏角色_ICCV2019论文解析 Face-to-Parameter Translation for Game Character Auto-Creation 论文链接: http: ...

  8. [FaceBook]测试、发布和分享小游戏

    FaceBook小游戏 测试.发布和分享小游戏 对于小游戏,您现在可以十分轻松地在本地测试开发版本,自动完成发布流程,以及与团队分享编译版本.本文档会详细说明这些步骤. 通过本地服务器测试游戏 小游戏 ...

  9. OPPO小游戏vConsole开启方法

    OPPO小游戏是不会报红色错误的,要开启vConsole,要在首场景脚本内onLoad里加上以下代码: qg.setEnableDebug({enableDebug: true, // true 为打 ...

  10. 如何把手变成手控_在这个模拟手的VR游戏里,你能体验到很多手控福利

    原标题:在这个模拟手的VR游戏里,你能体验到很多手控福利 前排提示,部分图片可能导致掉San. 如今的电子游戏越来越真实,但始终存在一个局限,那就是玩家通常使用手柄.键鼠等外设来控制角色,没法与游戏实 ...

最新文章

  1. 微服务接入oauth2_SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法)...
  2. 大道至简_阅读笔记02
  3. [云炬创业基础笔记]第五章创业机会评估测试13
  4. java获取web.xml 参数_解析web.xml中在Servlet中获取context-param和init-param内的参数
  5. String, StringBuilder 与StringBuffer的区别与联系
  6. CTF工具-seccomp-tools
  7. http的请求体body的几种数据格式
  8. matlab语言转化为python语言_matlab语言转译成python
  9. mysql5.5怎么升级补丁_mysql 5.5升级到5.7版本操作流程
  10. SQL Prompt 激活下载破解码注册码序列号,内有方法
  11. amos看拟合度在哪里看_AMOS分析技术:结构方程模型的拟合度评价指标
  12. ILSVRC2015-VID数据集结构一览图
  13. 知网HTML阅读是什么,HTML – 屏幕阅读器究竟是什么?我应该如何处理我的网站?...
  14. 无刷新假象   实现简易文件上传
  15. c#延时函数,不止Sleep函数
  16. Windows11打开任务管理器的方式
  17. 银河麒麟使用时遇到的问题
  18. 马云退休后首次演讲!听众是全球1500名校长
  19. AutoCAD2019+vs2019+C# 二次开发学习笔记day05(持续更新)
  20. 深入解析数据库透明加密技术

热门文章

  1. 合并百度影音的离线数据 with python 2.1 bdv格式的更新
  2. 他们说 我是个冷淡的人。
  3. js 的 split() 方法
  4. Your password has expired的解决办法
  5. winscp通过隧道连接(另一台服务器)—— SSH代理(ssh-agent)及SSH代理转发(agent-forwarding)功能介绍
  6. 十行代码实现手风琴效果
  7. 讯飞错误码10116
  8. 网卡内卸载VMware Bridge Protocol协议报错:0x8007007E
  9. marquee:已经被逐步舍弃掉的强大的模拟滚动的标签
  10. android studio BindService