【游戏——BFS+分层图】

embedded/2025/2/25 21:32:19/

题目

分析 

但凡是最优方案可能需要访问同一个点的情况,都需要应用“拆点”,或者说分层图的技巧。多出来的维度主要是区分同一个点的不同状态而用。

对于本题,访问的时机便是一个区分点。

对于类似题“AB路线”,同一个K段的位置是一个区分点(不会跨越一个K段,不然不是最优)。

代码

#include <bits/stdc++.h>
using namespace std;const int N = 110;
const int M = 310;int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};struct node
{int x, y, t;
};int l[N][N], r[N][N];
int dist[N][N][M];
bool st[N][N];
int n, m, t;int bfs()
{memset(dist, 0x3f, sizeof dist);queue<node> q;q.push({1, 1, 0});dist[1][1][0] = 0;while(q.size()){auto u = q.front(); q.pop();for(int i = 0; i < 4; i++){int x = u.x + dx[i];int y = u.y + dy[i];if(x < 1 || y < 1 || x > n || y > m) continue;if(dist[x][y][u.t+1] > u.t + 1 && (u.t + 1 < l[x][y] || u.t + 1 > r[x][y])){if(x == n && y == m) return u.t + 1;dist[x][y][u.t+1] = u.t + 1;q.push({x, y, u.t+1});}}}return -1;
}int main()
{scanf("%d%d%d", &n, &m, &t);for(int i = 1; i <= t; i++){int x, y, a, b;scanf("%d%d%d%d", &x, &y, &a, &b);l[x][y] = a, r[x][y] = b;}printf("%d", bfs());
}

类似题 

AB路线——BFS+分层图-CSDN博客


http://www.ppmy.cn/embedded/166130.html

相关文章

API接口设计模式:从分层架构到CQRS的实战应用

以下将从分层架构和 CQRS&#xff08;命令查询职责分离&#xff09;的基本概念入手&#xff0c;为你阐述从分层架构到 CQRS 的实战应用相关内容&#xff1a; 分层架构 概念&#xff1a;分层架构是将系统按照功能划分为不同的层次&#xff0c;每个层次负责特定的职责&#xff0c…

数据结构 1-2 线性表的链式存储-链表

1 原理 顺序表的缺点&#xff1a; 插入和删除移动大量元素数组的大小不好控制占用一大段连续的存储空间&#xff0c;造成很多碎片 链表规避了上述顺序表缺点 逻辑上相邻的两个元素在物理位置上不相邻 头结点 L&#xff1a;头指针 头指针&#xff1a;链表中第一个结点的存储…

Unity学习笔记-Unity了解,安装,简单配置(一)

Unity 是什么&#xff1f; Unity 是一款广受欢迎的跨平台游戏开发引擎&#xff0c;由 Unity Technologies 公司开发并推出。它以强大的功能和易用性&#xff0c;在游戏开发领域占据着举足轻重的地位&#xff0c;甚至可以说&#xff0c;它改变了游戏开发的格局。凭借其出色的跨…

基于数据可视化+SpringBoot+安卓端的数字化施工项目计划与管理平台设计和实现

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…

关于ES中text类型时间字段范围查询的结构化解决方案

前言 有关es中text类型的时间字段范围查询的问题&#xff0c;比如&#xff1a; {"query": {"range": {"insertTime": {"gte": "2025-02-01T00:00:00","lte": "2025-11-30T23:59:59","format&quo…

图数据库Neo4j面试内容整理-路径查询

路径查询 是图数据库中的一个常见操作,它用于查找图中节点之间的路径。路径查询不仅可以用于找到两个节点之间的路径,还可以用于找到所有符合特定条件的路径、最短路径或带有特定属性的路径等。路径查询在图数据库中具有广泛的应用,例如社交网络中的朋友关系、推荐系统中的相…

嵌入式硬件篇---滤波器

文章目录 前言一、模拟电子技术中的滤波器1. 基本概念功能实现方式 2. 分类按频率响应低通滤波器高通滤波器带通滤波器带阻滤波器 按实现方式无源滤波器有源滤波器 3. 设计方法巴特沃斯滤波器&#xff08;Butterworth&#xff09;切比雪夫滤波器&#xff08;Chebyshev&#xff…

小程序如何实现跨页面通信

前言 最近有很多同学问&#xff0c;小程序里面如何进行跨页面通信。看了下之前的老代码&#xff0c;基本都是基于onShow或者localStorage。虽然可以实现&#xff0c;但是并不怎么优雅。 今天就来聊一聊&#xff0c;小程序的跨页面通信的几种实现方案。或许会有你想要的方案&a…