
201604-4 游戏 ccf
发布日期:2021-05-04 09:01:53
浏览次数:9
分类:技术文章
本文共 1777 字,大约阅读时间需要 5 分钟。
问题描述
小明在玩一个电脑游戏,游戏在一个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#includeusing namespace std;struct point{ int x,y,time; point(int xx,int yy,int tt):x(xx),y(yy),time(tt){}};int unsafe[128][128][2],visit[128][128][312];int n,m,t;int dx[]={ 0,1,0,-1};int dy[]={ 1,0,-1,0};bool islegal(int x,int y){ return x>=1&&y>=1&&x<=n&&y<=m;}bool issafe(int x,int y,int time){ return unsafe[x][y][0]>time||unsafe[x][y][1]
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月17日 08时32分55秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
禁止重复提交(JavaScript控制表单…
2019-03-01
php js 通过sotitle(id,arr)函数输入ID取得返回值
2019-03-01
删除外键约束
2019-03-01
c++ 预处理命令 #error 用法
2019-03-01
OpenGL fragmentlist片段列表的实例
2019-03-01
OpenGL hdrb和loom的实例
2019-03-01
Qt Creator编码
2019-03-01
Qt Designer的UI文件格式
2019-03-01
OpenCV透视校正perspective correction的实例(附完整代码)
2019-03-01
Linux部署sendmail邮件服务器
2019-03-01
Centos7部署NFS-V4
2019-03-01
C语言和32位汇编语言关于if-else分支结构的对比分析
2019-03-01
Java小白的入门之路
2019-03-01
mongodb中文档的特殊更新--upsert、remove(根据条件删除数据 )
2019-03-01
Eclipse-更改Eclipse中SVN用户名及密码
2019-03-01
Mybatis-PageHelper分页插件-Spring
2019-03-01
MyBatis5_动态SQL
2019-03-01
Linux-账号管理
2019-03-01
网络相关面试题
2019-03-01
阿里一二三面、HR面面经-后台
2019-03-01