当前位置: 首页 > news >正文

icpc江西:L. campus(dij最短路)

题目

在樱花盛开的季节,西湖大学吸引了大量游客,这让胥胥非常烦恼。于是,他发明了一个神奇的按钮,按下按钮后,校园里所有的游客都会以光速从最近的大门离开学校。现在,胥胥非常好奇,游客们以光速离开学校时,每时每刻所走的距离总和是多少。

具体来说,WHU 是一个无向图,有 𝑛n 个节点和 𝑚m 条边。每个节点都有 𝑎𝑖ai 名游客。在 𝑛n 个节点中, 𝑘k 个节点作为大门,每个大门的开启时间间隔为 [𝑙𝑖,𝑟𝑖][li,ri] 。问题是,从 11 到 𝑇T 的每个时刻,游客以光速离开校园的距离总和是多少?

注: 如果有游客无法离开学校,则距离之和应假设为 −1−1 。

保证给定数据的图形连通、无自循环和存在多条边。

输入

第一行包含四个整数 𝑛n ( 1≤𝑛≤1051≤n≤105 ), 𝑚m ( 1≤𝑚≤1051≤m≤105 ), 𝑘k ( 1≤𝑘≤151≤k≤15 ), 𝑇T ( 1≤𝑇≤1051≤T≤105 ).

第二行包含 𝑛n 个整数 𝑎𝑖ai ( 1≤𝑎𝑖≤1031≤ai≤103 )。( 1≤𝑎𝑖≤1031≤ai≤103 ),代表 𝑖i /-th 节点的游客数量。

接下来的每 𝑘k 行包含三个整数 𝑝𝑖pi ( 1≤𝑝𝑖≤𝑛1≤pi≤n )。( 1≤𝑝𝑖≤𝑛1≤pi≤n )、 𝑙𝑖li 、 𝑟𝑖ri ( 1≤𝑙𝑖≤𝑟𝑖≤𝑇1≤li≤ri≤T ),代表图中索引为 𝑝𝑖pi 的节点是 𝑖i /第三个大门,大门的开启时间是 [𝑙𝑖,𝑟𝑖][li,ri] 。

接下来的 𝑚m 行中每一行都包含三个整数 𝑢,𝑣,𝑤u,v,w ( 1≤𝑢,𝑣≤𝑛,1≤𝑤≤1031≤u,v≤n,1≤w≤103 ),代表 𝑢u 和 𝑣v 之间长度为 𝑤w 的路径。

输出

打印 T 行,每行包含一个整数,代表 𝑖i /-时刻的距离总和

做法

#include<bits/stdc++.h>
#define int long long
using namespace std;const int N=1e5+10;int n,m,k,t,tot;
int a[N],head[N];struct ty{int l,next,t;
}edge[2*N];//无向图,没乘以2报超时,血泪教训void addedge(int x,int y,int z){edge[++tot].l=z;edge[tot].next=head[x];head[x]=tot;edge[tot].t=y;
}struct ty2{int x,dis;bool operator < (const ty2 & a) const{return dis>a.dis;}
};vector<int> v[N];//在时间i时开了的大门 
unordered_map<int,int> mp;//编号1~k 对应的门的编号 (直接用一个p[i]数组记录门的编号就好了)
int vis[20][N],dis[20][N];//门到各个点的最短路 
vector<pair<int,int> > g[N];//每个点i到k个门的距离  
vector<int> g1[N];每个点i到k个门的距离 (从小到大)priority_queue<ty2> q;
void dij(int k){q.push({mp[k],0});dis[k][mp[k]]=0;while(q.size()){ty2 tmp=q.top();q.pop();if(vis[k][tmp.x]) continue;vis[k][tmp.x]=1;for(int i=head[tmp.x];i!=-1;i=edge[i].next){if(vis[k][edge[i].t]) continue;if(dis[k][tmp.x]+edge[i].l<dis[k][edge[i].t]){dis[k][edge[i].t]=dis[k][tmp.x]+edge[i].l;q.push({edge[i].t,dis[k][edge[i].t]});}}}
}signed main(){memset(head,-1,sizeof(head));scanf("%lld%lld%lld%lld",&n,&m,&k,&t);for(int i=1;i<=n;i++) scanf("%lld",&a[i]);for(int i=1;i<=k;i++){int p,l,r;scanf("%lld%lld%lld",&p,&l,&r);mp[i]=p;//门 for(int j=l;j<=r;j++){//时间 v[j].push_back(i);}}for(int i=1;i<=m;i++){int u,v,w;scanf("%lld%lld%lld",&u,&v,&w);addedge(u,v,w);addedge(v,u,w);}for(int i=1;i<=k;i++){for(int j=1;j<=n;j++){dis[i][j]=0x3f3f3f3f3f3f3f3f;}}for(int i=1;i<=k;i++)//求门到各个点的最短路dij(i);for(int i=1;i<=n;i++) {for(int j=1;j<=k;j++)	{g[i].push_back({dis[j][i],j});}sort(g[i].begin(),g[i].end());for(int j=0;j<k;j++)	{g1[i].push_back(g[i][j].second);//每个点i到k个门的距离 (从小到大)}}int ans=0;for(int i=1;i<=t;i++){	if(v[i].size()==0) {//没有门打开,出不去 cout<<-1<<endl;continue;}if(v[i]==v[i-1]){//不加会超时,因为有很多情况都是只开了那几个门cout<<ans<<endl;continue;}ans=0;for(int j=1;j<=n;j++){for(int k=0;k<g1[j].size();k++){//门 (按距离从小到大)if(count(v[i].begin(),v[i].end(),g1[j][k])){//先找到肯定是最小的(最短路)ans+=a[j]*dis[g1[j][k]][j];break;}}}cout<<ans<<endl;}}

wa的原因

一直T在样例2,结果是建边的那个数组开少了一半……还有那个特判v[i]==v[i-1]也没想到

相关文章:

icpc江西:L. campus(dij最短路)

题目 在樱花盛开的季节&#xff0c;西湖大学吸引了大量游客&#xff0c;这让胥胥非常烦恼。于是&#xff0c;他发明了一个神奇的按钮&#xff0c;按下按钮后&#xff0c;校园里所有的游客都会以光速从最近的大门离开学校。现在&#xff0c;胥胥非常好奇&#xff0c;游客们以光…...

日志收集工具 Fluentd vs Fluent Bit 的区别

参考链接&#xff1a; FluentdFluentd BitFluentd & Fluent Bit | Fluent Bit: Official Manual Fluentd 与 Fluent Bit 两者都是生产级遥测生态系统&#xff01; 遥测数据处理可能很复杂&#xff0c;尤其是在大规模处理时。这就是创建 Fluentd 的原因。 Fluentd 不仅仅是…...

PostgreSQL技术内幕11:PostgreSQL事务原理解析-MVCC

文章目录 0.简介1.MVCC介绍2.MVCC常见的实现方式3.PG的MVCC实现3.1 可见性判断3.2 提交/取消 0.简介 本文主要介绍在事务模块中MVCC(多版本并发控制&#xff09;常见的实现方式&#xff0c;优缺点以及PG事务模块中MVCC&#xff08;多版本并发控制&#xff09;的实现。 1.MVCC…...

Java-面向对象编程(基础部分)

类和对象的区别和联系 类&#xff1a;类是封装对象的属性和行为的载体&#xff0c;在Java语言中对象的属性以成员变量的形式存在&#xff0c;而对象的方法以成员方法的形式存在。 对象&#xff1a;Java是面向对象的程序设计语言&#xff0c;对象是由类抽象出来的&#xff0c;…...

SMS over IP原理

目录 1. 短消息业务的实现方式 2. 传统 CS 短消息业务中的发送与送达报告 3. MAP/CAP 信令常见消息 4. SMS over IP 特点概述 5. SMS over IP 中的主要流程 5.1 短消息注册流程(NR 或 LTE 接入) 5.2 短消息发送(MO)流程(NR 或 LTE 接入) 5.3 短消息接收(MT)流程(NR 或…...

Linux中使用Docker容器构建Tomcat容器完整教程

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作…...

【机器学习】7 ——k近邻算法

机器学习7——k近邻 输入&#xff1a;实例的特征向量 输出&#xff1a;类别 懒惰学习&#xff08;lazy learning&#xff09;的代表算法 文章目录 机器学习7——k近邻1.k近邻2.模型——距离&#xff0c;k&#xff0c;分类规则2.1距离——相似程度的反映2.2 k值分类规则 算法实…...

2024.09.09 校招 实习 内推 面经

&#x1f6f0;️ &#xff1a;neituijunsir 交* 流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 佑驾创新 MINIEYE 2025校园招聘正式启动&#xff08;内推&#xff09; 校招 | 佑驾创新 MINIEYE 2025校园招聘正式启动&#xff08;内推&#xff09; 2、校招 | 长安汽…...

浅谈Linux中的环回设备

什么是环回设备 环回设备&#xff08;loop device&#xff09; 是 Linux 系统中一种特殊的虚拟设备&#xff0c;它允许你将一个普通的文件当作块设备来操作。这意味着&#xff0c;借助环回设备&#xff0c;文件可以模拟为一个磁盘或分区&#xff0c;供系统读写。这种机制非常有…...

聚焦汽车智能化与电动化,亚洲领先的汽车工业技术博览会 2025年11月与您相约 AUTO TECH 华南展

抢占市场先机︱聚焦汽车智能化与电动化&#xff0c;亚洲领先的汽车工业技术博览会 2025年11月与您相约 AUTO TECH 华南展 随着汽车智能化与电动化的迅猛发展&#xff0c;汽车电子技术、车用功率半导体技术、智能座舱技术、轻量化技术/材料、软件定义汽车、EV/HV技术、测试测量技…...

(史上最全)线程池

线程池 文章目录 线程池一&#xff0c;前言二&#xff0c;线程池三&#xff0c;参数四&#xff0c;线程池的实现原理5.线程池的使用案例(自定义线程池)6.使用Executors 创建常见的功能线程池1.固定大小线程池2.定时线程3.可缓存线程池4.单线程化线程池 一&#xff0c;前言 虽然…...

【ShuQiHere】 支持向量机(SVM)详解:从理论到实践,这一篇就够了

&#x1f4d6; 【ShuQiHere】 在现代机器学习课程中&#xff0c;支持向量机&#xff08;SVM&#xff09; 是不可或缺的一部分。它不仅在分类任务中有出色表现&#xff0c;还能灵活处理回归问题。尽管看似复杂&#xff0c;SVM 背后的思想却深刻而优雅。今天我们将全面探讨**支持…...

log4j2线程级动态日志级别

详见 参考 着重说明&#xff1a; DynamicThresholdFilter&#xff1a; 配置长这样&#xff1a;配置解释链接 <DynamicThresholdFilter key"logLevel" defaultThreshold"ERROR" onMatch"ACCEPT" onMismatch"DENY"><KeyVa…...

百度Android IM SDK组件能力建设及应用

作者 | 星途 导读 移动互联网时代&#xff0c;随着社交媒体、移动支付、线上购物等行业的快速发展&#xff0c;对即时通讯功能的需求不断增加。对于各APP而言&#xff0c;接入IM SDK&#xff08;即时通讯软件开发工具包&#xff09;能够大大降低开发成本、提高开发效率&#…...

CSS-Grid布局详解

前言 Grid 栅格布局 是 CSS 语言中非常强大的种布局&#xff0c;它提供了丰富的工具属性&#xff0c;可以轻松实现复杂且灵活的布局设计&#xff0c;因此想要完美使用CSS Grid 也有一定的难度和复杂性&#xff0c;我自己也是花了不少时间才真正掌握它的使用&#xff0c;在这篇…...

Give azure openai an encyclopedia of information

题意&#xff1a;给 Azure OpenAI 提供一部百科全书式的信息 问题背景&#xff1a; I am currently dabbling in the Azure OpenAI service. I want to take the default model and knowledge base and now add on to it my own unique information. So, for example, for mak…...

Nginx越界读取缓存漏洞(CVE-2017-7529)

漏洞原理&#xff1a; 影响版本内默认配置模块的Nginx只需要开启缓存&#xff0c;攻击者可以通过发送包含恶意构造range域的header请求进行远程攻击造成信息泄露。 影响范围&#xff1a; Nginx 0.5.6 – 1.13.2 漏洞复现&#xff1a; 开启靶场&#xff0c;访问8080端口 中间…...

【MySQL】查询语句之inner、left、right、full join 的区别

前言&#xff1a; INNER JOIN 和 OUTER JOIN 是SQL中常用的两种连接方式&#xff0c;用于从两表活多表中提取相关的数据。两者区别主要在于返回的 结果集 如何处理 匹配 与 不匹配 的行。 目录 1、INNER JOIN 2、OUTER JOIN 3、总结 1、INNER JOIN 称为内连接&#xff0c;只…...

Submariner 部署全过程

Submariner 部署全过程 部署集群配置 broker 集群&#xff1a; pod-cidr&#xff1a;11.244.0.0/16 service-cidr 11.96.0.0/12 broker 172.100.0.109 node 172.100.0.108 集群 1&#xff08; pve3 &#xff09;&#xff1a; pod-cidr&#xff1a;10.244.0.0/16 service-…...

驼峰命名法

一、驼峰命名法简介 驼峰命名法&#xff08;Camel Case&#xff09;是一种在编程和人类语言中广泛使用的书写方式&#xff0c;通过将单词连接在一起&#xff0c;并使每个单词的首字母大写来表示复合词或短语。这种命名法有小驼峰法和大驼峰法两种变种。 二、小驼峰命名法&…...

128K上下文开源代码模型:DeepSeek-Coder-V2赋能开发者的技术解析

128K上下文开源代码模型&#xff1a;DeepSeek-Coder-V2赋能开发者的技术解析 【免费下载链接】DeepSeek-Coder-V2 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Coder-V2 在软件开发效率日益成为竞争力核心指标的今天&#xff0c;开发者面临着代码生成质…...

从F1 90到62 F1 90:用Wireshark和CANoe‘解剖’一次完整的UDS 0x22数据读取会话

从F190到62F190&#xff1a;用Wireshark和CANoe解剖UDS 0x22数据读取会话 当你第一次在Wireshark中看到22服务请求和62响应报文时&#xff0c;那些十六进制字节可能就像天书一样难以理解。但正是这些看似杂乱的数据流&#xff0c;承载着现代汽车电子系统最核心的诊断信息交换。…...

xarray 实战指南 - 从数据操作到科学计算

1. 为什么你需要xarray&#xff1f; 第一次接触科学计算时&#xff0c;我用的是NumPy和Pandas。那时候处理气象数据&#xff0c;经常要手动管理维度、坐标和属性&#xff0c;一个简单的时空平均操作要写好几行代码。直到发现了xarray&#xff0c;才明白原来数据处理可以这么优雅…...

RMBG-2.0隐私安全优势解析:纯本地推理杜绝图片上传与数据泄露风险

RMBG-2.0隐私安全优势解析&#xff1a;纯本地推理杜绝图片上传与数据泄露风险 在数字时代&#xff0c;图片处理已经成为日常工作和创作的重要组成部分&#xff0c;但随之而来的隐私安全问题也日益凸显。许多在线抠图工具需要用户上传图片到云端服务器进行处理&#xff0c;这不…...

【NSudo】功能定位:开源权限管理工具的系统运维解决方案

【NSudo】功能定位&#xff1a;开源权限管理工具的系统运维解决方案 【免费下载链接】NSudo [Deprecated, work in progress alternative: https://github.com/M2Team/NanaRun] Series of System Administration Tools 项目地址: https://gitcode.com/gh_mirrors/ns/NSudo …...

OWL ADVENTURE应用场景解析:如何用AI助手提升工作效率

OWL ADVENTURE应用场景解析&#xff1a;如何用AI助手提升工作效率 1. 为什么选择OWL ADVENTURE作为AI助手 在当今快节奏的工作环境中&#xff0c;我们每天都要处理大量视觉信息——从产品图片到数据图表&#xff0c;从设计稿到文档扫描件。传统的工作流程往往需要人工逐一查看…...

告别逐行阅读:这个终端工具让你的阅读速度提升200%

告别逐行阅读&#xff1a;这个终端工具让你的阅读速度提升200% 【免费下载链接】speedread A simple terminal-based open source Spritz-alike (per-word RSVP aligned on optimal reading points) 项目地址: https://gitcode.com/gh_mirrors/sp/speedread 在信息爆炸的…...

Nunchaku FLUX.1-dev 提示词工程入门:编写高质量Prompt的实用技巧与范例

Nunchaku FLUX.1-dev 提示词工程入门&#xff1a;编写高质量Prompt的实用技巧与范例 你是不是也遇到过这种情况&#xff1a;用同一个开源大模型&#xff0c;别人生成的图片精美绝伦&#xff0c;自己生成的却总差点意思&#xff0c;要么主体不对&#xff0c;要么风格跑偏&#…...

建筑工地AI监控避坑指南:YOLOv11+PyQt5开发中的7个常见错误

建筑工地AI监控避坑指南&#xff1a;YOLOv11PyQt5开发中的7个常见错误 在建筑工地安全监控领域&#xff0c;AI技术的应用正从概念验证走向规模化落地。YOLOv11作为目标检测领域的新锐算法&#xff0c;配合PyQt5的灵活界面开发能力&#xff0c;确实能构建出高效的安全预警系统。…...

Swagger2Word:高效转换与文档自动化的API文档解决方案

Swagger2Word&#xff1a;高效转换与文档自动化的API文档解决方案 【免费下载链接】swagger2word 项目地址: https://gitcode.com/gh_mirrors/swa/swagger2word 在软件开发过程中&#xff0c;API文档的管理和维护常常成为团队协作的痛点。开发人员使用Swagger/OpenAPI规…...