【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;
}
从CTF到实战:Frida Hook无导出SO函数的3种特殊姿势 本文深入探讨了在移动安全逆向工程中,如何利用Frida Hook无导出SO函数的三种高级技巧:字符串引用定位法、调用栈回溯法和内存特征码扫描。针对安卓So层加固和混淆场景,文章结合CTF赛题与实战案例,详细解析了每种方法的原理、实现步骤与适用场景,为安全研究人员提供了从理论到实践的完整解决方案。 阅读详情

相关推荐

【electron】- 从零到一:在electron-vite项目中集成better-sqlite3的工程化实践

本文详细介绍了在electron-vite项目中集成better-sqlite3数据库的完整工程化实践。针对原生模块的编译挑战,提供了从环境配置、路径规划、服务封装到IPC通信的解决方案,并重点解决了开发与生产环境的数据库路径分离及打包部署等核心问题,帮助开发者构建稳定高效的Electron桌面应用数据层。

weixin_29306571的博客 205

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

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

Mr_dimple的博客 1955

《通信工程施工与管理》

制作馈线接头必须使用专用的工具,专用工具包括:馈线切割刀、馈线安全刀、小金属丝毛刷、固定尺寸或大号活动扳手、小号扁锉刀、细齿小手锯、接头扩孔器、3M防水胶或防水接头盒;如图所示,详情如表所示。

2302_78710464的博客 1653

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

次短路问题

水,全都是水 1152

Ego-Planner实战避坑指南:从环境搭建到仿真运行

本文详细介绍了在Windows系统下,通过WSL2搭建Ego-Planner无人机路径规划算法开发环境的完整流程与实战避坑指南。内容涵盖ROS Noetic安装、第三方依赖库(如Ceres Solver)编译冲突解决、Realsense SDK版本降级处理,以及Gazebo仿真与真机调试的常见问题,旨在帮助开发者高效完成环境配置并成功运行仿真。

weixin_29232507的博客 699

超级详细!!!新手使用AutoDL跑深度学习(MixVPR项目)的学习记录

新手第一次在AutoDL上跑深度学习的实验,遇到一些问题,简单记录一下。如果大家发现问题,欢迎和我讨论。

weixin_45152283的博客 5万+

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

扫地机器人视觉+IMU融合导航路径规划技术详解

本文介绍了基于视觉-惯性里程计(VIO)的扫地机器人自主导航系统。系统硬件由RGB摄像头、IMU传感器和编码器组成,软件架构采用分层设计,包括传感器数据采集层、数据融合层、SLAM定位层和路径规划层。核心技术包括:1)融合视觉特征提取(ORB算法)与IMU预积分的VIO;2)基于栅格地图的SLAM构建;3)结合A*全局规划和动态窗口法(DWA)局部避障的路径规划。文章提供了完整的Python实现代码,涵盖传感器数据融合、特征匹配和运动估计等关键功能模块。该系统实现了扫地机器人的精准定位和环境感知能力。

电脑管家 1463

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

Wireshark抓包分析:如何从HTTP流量中快速定位黑客攻击痕迹(附pcap文件)

本文通过Wireshark实战,详细解析了如何从HTTP流量中快速定位黑客攻击痕迹。文章提供了核心过滤策略,并重点剖析了如何识别SQL注入攻击的流量特征、揭露WebShell的隐蔽通信以及追踪攻击者在横向移动中的行为,帮助安全人员系统性地从pcap文件中还原完整攻击链。

sprite的博客 1009

openclaw通俗入门系列9——流式传输 + 分块

流式传输 = 不等写完就开始发。分块流式传输是把长回复切成几条消息发(所有渠道),草稿流式传输是像打字一样实时显示(仅 Telegram)。可以配置块大小、发送时机、合并规则、类人延迟。

m0_60605453的博客 506

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

YOLOv9 损失函数解析

YOLOv9作为YOLO系列的最新成员,在损失函数设计上进行了多项创新,重点优化了动态任务对齐机制、多模态定位损失融合以及跨层级梯度协同,进一步提升了检测精度与训练效率。

浩瀚之水的专栏 1293

【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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VB摄像头监控

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

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

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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、付费专栏及课程。

余额充值