旅游巴士

news/2025/1/14 9:56:53/文章来源:https://www.cnblogs.com/lutaoquan/p/18670163

旅游巴士
一看题啥也不会

注意到数据点范围,发现有特殊性质 ai=0 ,也就是说,每个景点没有时间限制,所以在分层图上跑BFS最短路就行了。设 dis[i][j] 为到第 i 个点时,在时刻 t 时刻到达,记录为 t mod k=j,分为 j 层。

考虑正解,假设现在到达了 u 号点,在 t 时刻,要去往点 v,开放时间为 w,如果现在 t >= w,直接通过就行了,到达时间为 t+1。

如果现在 t < w,其实就可以看为,在起点时,往后推移 k 个时间,也就是来景点是的公交车晚上几辆,直到时间 $\geq w$,也就是说等待的时间为 

最后就可以用 dijistra 跑一遍分层图最短路,起点是 dis1,0,终点是 disn,0

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,k,uu,vv,ww,dis[200010][200];
bool vis[200010][200];
struct node{ll v,w;
};
struct D{ll x,y,w;bool operator<(const D &x)const{return w>x.w;}
};
vector<node> v[200010];
priority_queue<D> q;
int main(){cin>>n>>m>>k;for(int i=1;i<=m;i++){cin>>uu>>vv>>ww;v[uu].push_back({vv,ww});}memset(dis,0x3f,sizeof(dis));dis[1][0]=0;//dijistra跑分层图q.push({1,0,0});while(!q.empty()){ll x=q.top().x,y=q.top().y,w=q.top().w;q.pop();if(vis[x][y]==1) continue;vis[x][y]=1;for(int i=0;i<v[x].size();i++){ll nx=v[x][i].v,ny=(y+1)%k,nw=v[x][i].w,p=dis[x][y];//nx 为新的节点,ny 表示为新的节点在第 ny 层if(vis[nx][ny]==0){if(p<nw) p+=(nw-p+k-1)/k*k;//时间不够,原地等待if(p+1<dis[nx][ny]){//如果可以松弛,那就松弛dis[nx][ny]=p+1;q.push({nx,ny,p+1});}}}}if(dis[n][0]>=0x3f3f3f3f) cout<<-1;//实在不会可以祈求CCF善良else cout<<dis[n][0];return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/868962.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS2022 安装 .NET Framework 4.0 和 .NET Framework 4.5 的方法

前言2022年5月27日,刚刚把VS2019升级到了VS2022,安装时已经不提供.NET Framework 4.0和.NET Framework 4.5的目标框架了,打开VS也提示不支持目标框架。 解决方法1、下载.NET Framework框架.NET Framework 4.5.2.NET Framework 4.5.1.NET Framework 4.5.NET Framework 4.0备…

《ESP32-S3使用指南—IDF版 V1.6》第二章 常用的C语言知识点

第二章 常用的C语言知识点 1)实验平台:正点原子DNESP32S3开发板 2)章节摘自【正点原子】ESP32-S3使用指南—IDF版 V1.6 3)购买链接:https://detail.tmall.com/item.htm?&id=768499342659 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/esp…

Avalonia 简单实现输入法光标跟随效果

本文将告诉大家如何在 Avalonia 里面实现输入法光标跟随效果本文是在 11.1.0 的 Avalonia 版本里面实现效果 本文内容里面只给出关键代码片段,如需要全部的项目文件,可到本文末尾找到本文所有代码的下载方法 核心是编写一个类型,让这个类型继承 TextInputMethodClient 类。然…

【一文详解】解决跨网文件传输三大瓶颈 选择专业文件摆渡系统

在数字化办公日益普及的今天,跨网文件传输成为许多企业面临的技术瓶颈。传统的文件传输方式往往无法满足跨地域、跨网络环境中的需求,尤其是随着数据量的增大和传输频率的提高,企业在进行文件交换时频繁遇到速度慢、安全性差、稳定性差等问题。因此,选择一款专业的文件摆渡…

SecureCRT v9.5.2 for Mac SSH终端操作工具

SecureCRT v9.5.2 for Mac SSH终端操作工具 安装 介绍 SecureCRT Mac是一款SSH终端工具,为计算专业人士提供高级会话管理工具。也是一个功能强大且值得信赖的基于GUI的SHH和Telnet客户端,以及旨在提高工作效率并简化重复任务的终端仿真器。借助SecureCRT mac版的帮助,您可以…

Gitlab流水线配置

由于格式和图片解析问题,为了更好阅读体验可前往 阅读原文流水线的流程是,提交代码后,gitlab会检测项目根目录里的.github-ci.yml文件,根据文件中的流水线自动构建,配置文件格式正确性可以在gitlab进行文件校验,格式使用yaml文件格式,一个yaml文件就是一个流水线,里面会…

验证表单输入:必填域

问题 希望确保必须为一个表单元素提供一个值。例如,希望保证一个文本框不为空。 解决方案 使用filter_has_var()查看这个元素在相应的输入数组中是否存在。 严格表单验证 // 检查POST请求中是否存在first_name字段,并且这个字段的长度大于0 if(!(filter_has_var(INPUT_POST, …

[2025.1.13 JavaSE学习]集合-7(Hashtable Properties)

Hashtable 特点和HashMap处于同一级,实现了Map接口,继承了Dictionary类 Hashtable的key和value都不能为null,否则会抛出NullPointException 是线程安全的,带有synchronized修饰扩容机制底层有数组Hashtable$Entry[ ],初始化大小为11 临界值threshold为8 = 11/* 0.75 而后按…

Ansible工具集使用指南

作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 目录一.ansible相关的工具概述1.查看ansible相关的工具2.本质上是一个Python脚本文件二.ansible-doc工具使用指南1 ansible-doc查看ansible文档2.列出支持的模块列表3.过滤出指定模块4.列出指定类型模块5.显示…

网络云服务

一、网络服务介绍 网络是指多个计算机或其他设备连接在一起,以便它们可以互相通信和共享资源的系统。 网络可以是局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)或互联网(Internet)等不同类型。 华为云拥有丰富的网络服务,提供安全、可扩展的云上网…

Get-Command *http* 后,你会看到与 HTTP 相关的命令和工具的列表。以下是这些命令和它们的简要描述:

inetcpl.cpl 是 Internet Explorer 设置面板的控制面板项文件,运行此命令将打开 Internet Explorer 的设置界面,其中包括浏览器的常规设置、连接设置、安全性设置等。Get-Command *http* 后,你会看到与 HTTP 相关的命令和工具的列表。以下是这些命令和它们的简要描述: 1. N…

快速上手 INFINI Console 的 TopN 指标功能

背景 在分布式搜索引擎系统(如 Easysearch、Elasticsearch 和 OpenSearch)中,性能监控至关重要。为了确保系统的高效运行和资源的合理分配,我们通常需要关注一段时间内关键资源的使用情况,特别是索引、节点和分片的内存与 CPU 占用情况。 通过对这些关键指标进行 TopN 查询…