【游戏——BFS+分层图】

ops/2025/2/27 2:27: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/ops/161567.html

相关文章

AxiosError: Network Error

不知怎么的&#xff0c;项目还在开发阶段&#xff0c;之前还好好的&#xff0c;玩儿了两天再一打开发现页面无法显示数据了&#xff0c;报错如下&#xff1a; 我以为是后端出问题了&#xff0c;但是后端控制台无报错&#xff0c;又用postman测试了一下&#xff0c;可以获取到数…

交换机与路由器连接方式

交换机和路由器连接的三种主要方式如下&#xff1a; 一、直连连接 这是最简单直接的连接方式。通过一根网线将交换机的一个端口与路由器的一个LAN端口相连。这种连接方式适用于小型网络&#xff0c;其中交换机负责局域网内部的数据交换&#xff0c;而路由器则负责将内部网络连接…

Jenkins垃圾清理指南

文章目录 1. Jenkins是什么2. 哪些部分容易产生垃圾3. Jenkins垃圾清理方案3.1 单Job配置&#xff1a;自动清理旧构建3.2 全局统一清理&#xff1a;Slicing插件批量操作3.3 本地缓存清理 4. 空间预警 1. Jenkins是什么 Jenkins是一款开源的持续集成与持续交付&#xff08;CI/C…

直角三角堰计算公式

直角三角堰的计算公式通常用于确定流经直角三角形形状的堰的流量。河北瑾航科技遥测终端机 通过采集液位数据(模拟量、串口485/232)&#xff0c;计算得到瞬时流量&#xff0c;然后通过积分进行累计算出累积量&#xff1b;直角三角堰的流量计算公式为&#xff1a; 直角三角堰 计…

第十三:路由两个注意点:

4.3. 【两个注意点】 路由组件通常存放在pages 或 views文件夹&#xff0c;一般组件通常存放在components文件夹。 通过点击导航&#xff0c;视觉效果上“消失” 了的路由组件&#xff0c;默认是被卸载掉的&#xff0c;需要的时候再去挂载。 <script setup lang"ts&q…

vsCode下载、安装、推荐插件

1. Visual Studio Code(简称 VS Code) 是Microsoft 于2015年4月发布的一款代码编辑器 2. VS Code 对前端代码有非常强大的支持&#xff0c;同时也支持其他编程语言(C、Java、Python等) 3. VS Code提供了非常强大的插件库&#xff1b; 官网&#xff1a;Visual Studio Code - …

一键部署开源DeepSeek并集成到钉钉

一键部署开源DeepSeek并集成到钉钉 简介&#xff1a; DeepSeek发布了两款先进AI模型V3和R1&#xff0c;分别适用于对话AI、内容生成及推理任务。由于官方API流量限制&#xff0c;阿里云推出了私有化部署方案&#xff0c;无需编写代码即可完成部署&#xff0c;并通过计算巢AppF…

xss-lab

xss XSS全称跨站脚本(Cross Site Scripting)&#xff0c;为避免与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆&#xff0c;故缩写为XSS。这是一种将任意 Javascript 代码插入到其他Web用户页面中执行以达到攻击目的的漏洞。攻击者利用浏览器的动态展示数据功能&#x…