CCF 2016-4-4 游戏(bfs标记)

CCF 201604-4 游戏 问题描述   小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。   每个单位时间,小明的角色必须向上下 阅读详情

题目

在这里插入图片描述

题解

直接bfs,状态由r,c,time,既然有三维状态,那就需要有三维标记,这样可以防止重复搜索。

代码

#include <bits/stdc++.h>
using namespace std;
#define FOR0(a,b) for(int i = a; i < b; ++i)
#define FORE(a,b) for(int i = a; i <= b; ++i)
typedef long long ll;
typedef pair<int,int> pii;
#define x first
#define y second
const int dr[] = {1,-1,0,0};
const int dc[] = {0,0,1,-1};
const int maxn = 1e4+5;
const int INF = 0x3f3f3f3f;
int n,m,t;
pii cor[105][105];
struct Node {
	int r,c;
	int tim;
};
int vis[105][105][300];
void solve() {
	int ans = INF;
	queue<Node> que;
	que.push((Node){1,1,0});
	memset(vis, 0,sizeof vis);
	while(!que.empty()) {
		Node u = que.front();
		que.pop();
		// cout << u.r <<" " << u.c<<" "<<u.tim << endl;
		if(vis[u.r][u.c][u.tim])
			continue;
		// cout << -1 << endl;
		vis[u.r][u.c][u.tim] = 1;
		if(u.r == n && u.c == m) {
			cout << u.tim << endl;
			return;
		}
		for(int i = 0; i < 4; ++i) {
			int nr = u.r+dr[i], nc = u.c+dc[i];
			int ntim = u.tim+1;
			if(nr < 1 || nr > n || nc < 1 || nc > m || ntim >= cor[nr][nc].x && ntim <= cor[nr][nc].y) continue;
			que.push((Node){nr,nc,ntim});
		}
		// que.push((Node){u.r,u.c,u.tim+1});
	}
}
int main() {
	scanf("%d%d%d", &n, &m,&t);
	int u,v,l,r;
	for(int i = 0; i < t; ++i) {
		scanf("%d%d%d%d", &u, &v, &l, &r);
		cor[u][v].x = l; cor[u][v].y = r;
	}
	solve();
	return 0;
}
CCF CSP 竞赛试题——游戏(201604-4)(100分) 问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。 方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。 每个单位时间,小明的角色必须向上下左右四个方向相邻的... 阅读详情

相关推荐

CCF认证 2016-04 游戏

求在方格图上从一点到达另一点的最短时间,有边界但是没有障碍,取而代之的是某些方格在一段时间内是不能走的可能在某段时间会困在一个区域内,每个时间必须走一步,所以可以走回头路不妨直接在二维平面图的基础上加上时间这个维度,进行三维的bfs搜索,但是时间每走一步都是+1这样最先到达目标点依然是最快的时间#include&lt;iostream&gt; #include&lt;cstdio&gt; #inc...

wl16wzl的博客 1476

CCF CSP认证201604-4 游戏(BFS)

201604-4 游戏 思路 这道题用bfs可解,由于点是可以重复访问的,不加限制的话很容易超时。我刚开始想到用优先队列让离终点近的点优先访问,然而会得出错误解,只有20分。(其实我早就意识到会算错,但我没其他方法优化bfs了,就只能这样子混分喽,不过我没想到才20分。事后想想这样子优化根本就不可靠,还不如暴力bfs信得过。) 空间上的重复访问限制不了,其实我们可以限制其在时间上的重复访问,设一...

weixin_43944910的博客 391

【信息科学与工程学】【审计学】第一篇 招投标领域审计算法01

在每个关键流程节点(如文件上传、开标唱标、评标结束), 计算该环节所有电子文件的数字指纹(如SHA-256哈希值), 并将指纹和元数据(时间、操作人)上链存证。:从发票、合同中提取材料品名、规格、采购价、时间、地点。:对每个供应商, 提取其在历史投标中的行为序列特征, 如:中标率、与特定伙伴同时投标率、自身高报价次数、在伙伴中标项目中的“弃标”或“无效标”次数。:监控开标、评标现场音视频, 识别异常情绪(激烈争吵)、敏感关键词(“打点”、“关照”)、异常物品传递、私下交流等违规行为。

weixin_49199313的博客 815

【CCF 201604-4】游戏(BFS+优先队列)

写在前面 写博客之前搜索了一下网解,发现大家都是BFS+三维vis过的:CCF201604-4 游戏(100分) 这里分享一个BFS+优先队列的满分思路(如有错误请指正) 大致思路 每次从队列中找出d值最小的结点, 假设为u,由于使用的是优先队列,那么能够保证每次出队的u是最优的先驱。那么对于它的邻接结点v,有: ①若v在u.d+1的时间可达,那么v.d = u.d+1,且这是它的...

Salmon_lee的博客 546

ISP之LSC(Lens Shading Correction)

LSC - Lens Shading Correction即镜头暗影校正。

IQ_WXY的博客 5097

afe模拟前端的重要性_高性能模拟前端信号链解决方案如何助力医疗超声系统发展...

1942年,奥地利TDussik使用A型超声成像系统穿透性探测颅脑,并于1949年获得头部的超声图像,此举昭示超声系统进入到医疗领域。直到如今,超声系统作为用于人体内部的无创可视化技术,被广泛用于医疗领域。最近一份报告称到2022年,中国医疗超声诊断仪器行业的市场规模预计将达到15.8亿美元,保持6%左右的年均增长率。高性能模拟信号链前端是超声设备的关键组成部分,作为高性能模拟技术主要的提供商AD...

weixin_28799111的博客 1088

CCF201604-4 游戏

试题编号: 201604-4 试题名称: 游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一...

SEIZE THE DAY 391

STM32CubeIDE之SHT3X温湿度传感器移植HAL库

有了前面的OLED的学习,这个学习起来也很快。 分以下几步走 1.你要有个温度传感器,SHT3X这个型号的,因为我要讲这个 2.你要有个STM32开发板(我用的是STM32L431RCT) 3.顺便找台电脑下载一个STM32CubeIDE 4.简单的找一个SHT3X的驱动,我是去某宝嫖的,一般卖这个的都有,这个驱动分两个文件,是.c和.h的,我直接把这两个放在下边 读了我上一篇的人,看这个应该很熟悉吧,一样的套路,学习方法是一样的,你就照搬就行 下面是sht3x.c的原文档,里面有个CRC..

qq_47736089的博客 2314

CCF 201604-04 游戏 BFS+时间限制

问题描述   小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。   每个单位时间,小明的角色必须向上下

不平凡的博客 598

一文掌握DrissionPage的详细使用

是一个基于 Python 的网页自动化工具,主要用于网页数据的抓取、自动化操作和测试。它结合了 Selenium 和 Requests 的优点,提供了更简洁、高效的 API,适用于各种网页自动化任务。DrissionPage 是一个功能强大且易于使用的网页自动化工具,适用于各种网页自动化任务。希望本文的 DrissionPage 的基本使用方法和一些高级功能能够帮助到你。

数据知道的博客 1万+

教程: 将 SolidWorks 设计导出为 ROS 的 URDF

请按照以下步骤应用自定义徽标纹理:创建徽标材质文件:techniquepass材质名称:测试/材质颜色属性:环境、漫反射、镜面和发射都设置为白色(1 1 1 1),这意味着该材质看起来完全是白色的。纹理 在表面应用纹理图像 logo.png。将材质文件复制到 gazebo matrial:复制徽标图像:将 “徽标 ”替换为机器人上徽标所在位置的适当参考值。按照以上步骤,您就可以在 Gazebo 中为机器人添加自定义材质和纹理,包括徽标。

机器人控制与仿真应用 2457

CCF 2016-4-4 游戏 100分

//方法就是广度遍历+三维数组标记访问,其中第三维表示访问时间 #include<iostream> #include<queue> using namespace std; typedef struct Node{ int x,y,step; }Node; int vis[105][105][305]={0};//注意要使第三维尽可能的大 queue<No...

曼彻斯特小球童 257

手把手教你学pcie--内存管理和保护机制(一):MPU与其他内存管理和保护机制详解

MPU(Memory Protection Unit)是一种专门用于 ​。,这些机制通常协同工作,形成多层防御体系,兼顾安全性、性能和灵活性。

MHD0815的博客 279

CSP 201604-4 游戏 bfs 高维数组

题目: n*m的方格,某些时刻某些方格危险。求(1,1)到(n,m)的最短时间。注意,每个时间单位必须走,不能停。 思路: 每个点由(x,y,t)三维描述,vis数组也使用三维记录,-1表示危险,0代表可到达,>0代表最短步数。 取(1,1,0),x、y、t同时扩展,判断条件,修改vis,入队列 注意: 1.时间维的range与x、y不同,没有危险的情况下最大200,由于有危险的时间&...

CathyLea 265

WEB浏览器视频流播放方案

基于Media Source Extensions播放视频流 浏览器播放视频的几种方法 一、H5 video标签 在浏览器播放视频,可以使用HTML5原生的video标签。但其播放的格式使用一定限制的,目前video只支持三种格式WebM、Ogg、MP4。 WebM:WebM 文件使用 VP8 视频编解码器和 Vorbis 音频编解码器 Ogg :Ogg 文件使用 Theora 视频编解码器和 Vorbis音频编解码器 MP4: MPEG 4文件使用 H264 视频编解码器和AAC音频编解码器 上面三种

machh的专栏 2381

【STK】手把手教你利用STK进行光电红外仿真04-STK/EOIR模块的实战操作1航天器星载相机对LEO卫星成像

今天引入一个实际的场景,帮助大家完成对于这个模块的理解与运用。

weixin_44184852的博客 2417

游戏(csp100分代码)

问题描述   小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。   每个单位时间,小明的角色必须向上下左右四个方向相邻的方格中的一个移动一格。   经过很多次尝试,小明掌握了方格图的安全和危险的规律:每一个方格出现危险的

q1430186623的博客 681

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

所有博客导航

。。

nameofcsdn的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

第七次CCF-D:游戏

问题描述   小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。   每个单位时间,小明的角色必须向

加载中... 3854

ccf 认证 201604-4:游戏

解题思路:学过搜索的一眼就能看出是广搜,没学过建议翻翻书,毕竟考得挺多。 注意事项: 1.广搜用队列来实现,也可用数组循环来实现。 2.需要优化,不然会出现超时。 3.通关最长时间不超过300秒。 4.可以往回走。 5.每走一步都要判断是否安全和是否可达。 6.最关键的一个条件,不太容易在短时间想到:同一个节点同一时刻只能加队列一次。必须加上这个条件不然

xiewq的专栏 2153

CCF游戏

问题描述   小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。   每个单位时间,小明的角色必须向

God Liao On The Way 1736

CCF201604-4 游戏(100分)

    试题编号: 201604-4 试题名称: 游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制...

海岛Blog 7353

CCF201604-4 游戏 (100分)

试题编号: 201604-4 试题名称: 游戏 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。   方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一...

逐梦者 1886

CCF——游戏(2017-12)

问题描述   有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。  游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。...

weixin_30239339的博客 127
上一篇: P2161 会场预约(区间染色)
下一篇: 树状数组找出[1,r]中比x小的数的个数
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值