【codevs1269】匈牙利游戏

【综合笔试题】难度 4.5/5,经典次短路问题 这是我们「刷穿 LeetCode」系列文章的第No.2045篇,系列开始于 2021/01/01,截止于起始日 LeetCode 上共有 1916 道题目,部分是有锁题,我们将先把所有不带锁的题目刷完。在这个系列文章里面,除了讲解解题思路以外,还会尽可能给出最为简洁的代码。如果涉及通解还会相应的代码模板。 阅读详情

Welcome to the Hungary Games!

题目描述 Description

欢迎来到匈牙利游戏!布达佩斯(匈牙利首都)的街道形成了一个弯曲的单向网络。
你被强制要求参加一个赛跑作为一个TV秀的一部分节目,比赛中你需要穿越这些街道,从s开始,到t结束。
很自然的,你想要尽快的完成比赛,因为你的比赛完成的越好,你就能得到更多的商业促销合同。
但是,有一个需要了解的是,如果有人过于聪明找到从s到t的最短路线,那么他就被扔到国家极品人类保护系统中作为一个国家宝藏收藏起来。你显然要避免这种事情的发生,但是也想越快越好。写一个程序来计算一个从s到t的严格次短路线吧。
有的时候,严格次短路线可能访问某些节点不止一次。样例2是一个例子。

输入描述 Input Description

第一行包含两个整数N和M,N代表布达佩斯的节点个数,M代表边的个数。节点编号从1到N。1代表出发点s,N代表终点t。接下来的M行每行三个整数A B L,代表有一条从A到B的长度为L的单向同路。你可以认为A不等于B,也不会有重复的(A,B)对。

输出描述 Output Description

输出从s到t的严格次短路的长度。如果从s到t的路少于2条,输出-1。

样例输入 Sample Input

样例输入1:

4 6
1 2 5
1 3 5
2 3 1
2 4 5
3 4 5
1 4 13
样例输入2:
2 2
1 2 1
2 1 1

样例输出 Sample Output

样例输出1:
11
样例输出2:
3

这道题叫次短路……
和最短路类似,但略有不同
主要就是开第二个距离数组dist2(也就是代码中的cdl(次短路))
用来存放次短路长度
当然也可以用结构体储存辣
下面是代码~_~

#include<queue>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
long long tot,dist1[200010],cdl[200010],head[200010],Ts,Te,T,C;
bool passby[200010];
struct Edge
{
    int next,to,dist;
}edge[900010];
void add(int from,int to,int dd)//dd=距离;
{
    edge[++tot].to=to;//加终点 
    edge[tot].dist=dd;//加距离 
    edge[tot].next=head[from];//更新上条路 
    head[from]=tot;//更新这条路 
}
queue<int> q;
void spfa(int s)
{
    dist1[s]/*=cdl[s]*/=0;
    passby[s]=1;
    q.push(s);
    for(;!q.empty();)
    {
        int x=q.front();
        passby[x]=0;
        q.pop();
        for(int i=head[x];i;i=edge[i].next)
        {
            Edge e=edge[i];
            if(dist1[e.to]>dist1[x]+e.dist)
            {
                cdl[e.to]=dist1[e.to];
                dist1[e.to]=dist1[x]+e.dist;
                if(!passby[e.to])
                {
                    passby[e.to]=1;
                    q.push(e.to);
                }
            }
            else if(cdl[e.to]>dist1[x]+e.dist&&dist1[e.to]<dist1[x]+e.dist)//注意&&后的东西 
            {
                cdl[e.to]=dist1[x]+e.dist;
                if(!passby[e.to])
                {
                    passby[e.to]=1;
                    q.push(e.to);
                }
            }
            else if(cdl[e.to]>cdl[x]+e.dist)
            {
                cdl[e.to]=cdl[x]+e.dist;
                if(!passby[e.to])
                {
                    passby[e.to]=1;
                    q.push(e.to);
                }
            }
        }
    }
}
int main()
{
    cin>>T>>C;
    for(int i=0;i<=C+5;i++)dist1[i]=cdl[i]=0x7ffffffffffffff;
    for(int i=1;i<=C;i++)
    {
        int Rs,Re,Ci;
        cin>>Rs>>Re>>Ci;
        add(Rs,Re,Ci);
    }
    spfa(1);
    if(cdl[T]!=0x7ffffffffffffff)
        cout<<cdl[T];
    else
        cout<<"-1" ;
    return 0;
}
Linux系统下Materials Studio 2020安装避坑指南:从依赖包到许可证配置全流程 本文提供了一份在Linux系统上安装Materials Studio 2020的深度避坑指南。详细解析了从系统依赖包检查、安装流程、许可证配置到Gateway服务部署的全过程,并分享了与Slurm作业调度系统集成的实战经验,旨在帮助用户高效、稳定地完成部署。 阅读详情

相关推荐

Hexo博客使用PDF.js

clone了一个pdf.js 然后兴高采烈地到文章里使用{% pdf %}标签 结果浏览器弹出了个下载框(使用GitHub的raw) 不知道是不是因为使用GitHub的原因导致这个问题 后来我测试的时候报了个错 优快云上的解决方法 到时候我再试试把资源放回lib/里面看看行不行 目录1.clone1.1.官方方法1.2.NexT主题方法1.3.补充2.修改文件2.1.修改viewer.htm...

LTFan 962

严格次短路 & 非严格次短路

求次短路的思路都相同,都是把值丢到优先队列里,每次取出最小值将其邻点更新。 如果能更新最短距离的话,肯定更新最短距离,换下来的最短距离递补成次短距离;不能更新最短距离的话,再看能否更新次短距离。 而严格次短和非严格次短的区别就在于:最短距离和次短距离能否更新成相同值。 一、非严格次短路 模型 次短路的长度可以和最短路长度相同,问次短路长度为多少? 思路 定义两个 dist数组,用于存放最短距离和次短距离。 从优先队列里面取出一点 dis,遍历所有邻点 tx: 如果 dis + w 比 tx 的最短距离小

Mr_dimple的博客 1955

ADS版图优化中的参数化设计技巧

本文详细介绍了在ADS中进行射频电路版图参数化设计的核心技巧。通过将版图关键尺寸定义为变量,并与电磁仿真及优化器联动,实现从手动修改到自动迭代的转变,极大提升了PA、LNA等电路的设计与优化效率。文章以阶梯阻抗变换器为例,阐述了变量创建、绑定及协同仿真的完整流程,并提供了避免网格冲突、变量混乱等常见问题的实用指南。

weixin_29296241的博客 405

严格次短路问题(洛谷P2865题解,Dijkstra算法应用)

次短路问题

水,全都是水 1152

告别商业软件?实测用gnina(CNN打分版)做分子对接:从安装到跑通第一个案例

本文详细介绍了基于卷积神经网络(CNN)的开源分子对接工具gnina的安装与实战应用。从环境配置、编译安装到运行第一个COVID-19主蛋白酶抑制剂对接案例,全面解析了这款替代商业软件的强大功能,特别适合预算有限的研究团队进行药物发现和虚拟筛选。

weixin_42522320的博客 255

【即插即用模块】注意力篇 | TGRS 2025 | ASD:自适应频域解耦,动态拆分高低频+空间注意力,频域空间特征双增强!

摘要: FDMF-Net提出了一种频域解耦多模态融合网络,核心组件为振幅谱解耦模块(ASD)。ASD通过自适应频域拆分和频域-空域协同增强,有效分离模态不变与模态特定特征。该模块利用MLP学习动态阈值调整高低频比例,并通过空间注意力分别强化频域特征,在遥感语义分割任务中实现了细节与结构的协同增强。实验表明,ASD模块能减少模态内冗余,提升特征判别性,为多模态数据融合提供了新思路。代码已开源,适用于需要强化细节与结构的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 308

POJ-3255 Roadblocks(次短路)

Bessie has moved to a small farm and sometimes enjoys returning to visit one of her best friends. She does not want to get to her old home too quickly, because she likes the scenery along the way. She has decided to take the second-shortest rather than the

yo_bc的博客 763

OAuth2.0集成SpringSecurity加JWT实现单点登录

单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以

Nicky's blog 9038

POJ-3255-次短路

这个题就是严格次短路问题,边是无向边,这里记下三种做法,一是直接dijkstra求,二是dijkstra+A*求,三是两次最短路。 dijkstra: #include &lt;cstring&gt; #include &lt;cstdio&gt; #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;algorithm&...

alusang的博客 1957

基于Python的上市公司年报PDF文本抓取与财务风险分析系统

随着大数据时代的到来,金融数据分析已成为投资决策和风险管理的重要工具。上市公司年报包含了丰富的财务信息和经营数据,通过对这些数据的提取和分析,可以评估公司的财务状况和潜在风险。本文将详细介绍如何使用Python构建一个完整的上市公司年报文本抓取与财务风险分析系统,涵盖PDF文本提取、数据清洗、财务指标计算和风险分析等全流程。

2201_76125261的博客 312

手把手教你学Simulink--基于Simulink的高速公路自动驾驶场景仿真建模

特点车道保持:自动调整车辆方向以保持在车道中央。自适应巡航控制(ACC):根据前方车辆的速度自动调节车速。换道辅助:安全地变换车道以超过慢速行驶的车辆或准备驶离高速公路。紧急制动:检测潜在碰撞并采取措施避免事故。挑战安全性:确保所有功能在各种条件下都能可靠运行。实时性:处理大量传感器数据,并迅速做出反应。复杂性:集成多个子系统,包括感知、规划与控制。首先明确要模拟的任务内容。车辆需保持在车道内行驶。根据交通情况自动调整速度。安全地执行换道操作。在必要时实施紧急制动。

MHD0815的博客 247

codevs 1269 匈牙利游戏

题目描述 DescriptionWelcome to the Hungary Games! The streets of Budapest form a twisted network of one-way streets.欢迎来到匈牙利游戏!布达佩斯(匈牙利首都)的街道形成了一个弯曲的单向网络。You have been forced to join a race as part of a “Re

Loi_Mapleleaf的小池 438

SAP GR(Group Reporting)配置篇(一)

GUI组报表的SAP S4HANA1.1全局参数1.1.1 检查全球系统设置菜单路径组报表的SAP S4HANA>合并的全局设置>检查全球系统设置事务代码CXB3说 明定义好分类账、版本、合并科目表后,重新设置。1.2主数据1.2.1定义合并分类账菜单路径组报表的SAP S4HANA>主数据>定义合并分类账事务代码CXL2说 明复制的Y1合并分类账,集团货币为CNY。此功能对分类账进行设置,应用到集团货币分类。

weixin_43853754的博客 1700

【codevs 1269】匈牙利游戏

题目描述 Description Welcome to the Hungary Games! The streets of Budapest form a twisted network of one-way streets.欢迎来到匈牙利游戏!布达佩斯(匈牙利首都)的街道形成了一个弯曲的单向网络。You have been forced to join a race as part of a “

LOI_Sherlock 552

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Codevs1269 匈牙利游戏

题目描述 DescriptionWelcome to the Hungary Games! The streets of Budapest form a twisted network of one-way streets.欢迎来到匈牙利游戏!布达佩斯(匈牙利首都)的街道形成了一个弯曲的单向网络。You have been forced to join a race as part of a “Re

LOI__DiJiang的博客 518

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

codevs 1269 匈牙利游戏

        codevs 1269 匈牙利游戏 题目描述Description Welcome to the Hungary Games! The streets of Budapest form a twisted network of one-way streets. 欢迎来到匈牙利游戏!布达佩斯(匈牙利首都)的街道形成了一个弯曲的单向网络。 You have ...

weixin_30724853的博客 121

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

codevs——1269 匈牙利游戏

1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述Description Welcome to the Hungary Games! The streets of ...

weixin_34092455的博客 126

Codevs1269 匈牙利游戏 次短路spfa

Codevs1269 匈牙利游戏更新时变为3种情况: 1.最短路更新最短路; 2.最短路不能更新最短路但能更新次短路; 3.次短路更新次短路。思考一下,就显然了。#include <cstdio> #include <cstring> #include <iostream> #include <cstdlib> #include <queue> using namespace std;#def

QER 的博客 567

codevs 1269 匈牙利游戏 SPFA+次短路

题目描述 Description Welcome to the Hungary Games! The streets of Budapest form a twisted network of one-way streets. 欢迎来到匈牙利游戏!布达佩斯(匈牙利首都)的街道形成了一个弯曲的单向网络。 You have been for...

dataxiang6224的博客 191

[codevs1269] 匈牙利游戏

题解  借鉴了hzwer和网上的做法。。此题是个次短路的模板题 分三种情况更新 1.可以更新最短路 :原最短路变为次短路 更新最短路 2.可以更新次短路但不能更新最短路 :更新次短路 3.次段路也可以更新次段路:那么更新次短路 #include #include #include #include #include #include #include #define N 20001 #

Edt! 371
上一篇: 【1999noip提高组】拦截导弹
下一篇: 【codevs3304】水果姐逛水果街
Loi_fluency
博客等级 码龄11年 22粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值