bzoj 2763 飞行路线(分层图最短路)

二叉树随机漫步 元旦快乐! 学习到中本聪bitcoin的文章的calculation部分的时候,出现了binomial random walk,不是很明白什么是random walk。发现这个文章写的很好:https://blog.youkuaiyun.com/fireguard/article/details/16111603 随机漫步,也叫随机游走,最早是物理学中做"布朗运动"的微观粒子的运动形态来形成的一个模型,布朗运... 阅读详情

*PS:为什么这个题好像卡SPFA,评测里dij跑的要比SPFA快很多ψ(。。) (另:orz…同样打的是SPFA,就我T了。。。QAQ) ,并且数组访问了负数下标竟然显示wa

go to the problem

Description

Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多k种航线上搭乘飞机。那么Alice和Bob这次出行最少花费多少?

Input

数据的第一行有三个整数,n,m,k,分别表示城市数,航线数和免费乘坐次数。
第二行有两个整数,s,t,分别表示他们出行的起点城市编号和终点城市编号。(0<=s,t< n)
接下来有m行,每行三个整数,a,b,c,表示存在一种航线,能从城市a到达城市b,或从城市b到达城市a,价格为c。(0<=a,b< n,a与b不相等,0<=c<=1000)

Output

只有一行,包含一个整数,为最少花费。

Sample Input

5 6 1

0 4

0 1 5

1 2 5

2 3 5

3 4 5

2 3 3

0 2 100

Sample Output

8

HINT

对于30%的数据,2<=n<=50,1<=m<=300,k=0;

对于50%的数据,2<=n<=600,1<=m<=6000,0<=k<=1;

对于100%的数据,2<=n<=10000,1<=m<=50000,0<=k<=10.

dalao们都说这是分层图。。。蒟蒻表示不懂。。。
反正de和队列都要开两维记录一下带k的状态就对了。。。我的k是从K~0做的,还要判负数(麻烦QWQ)。。。加了个小优化,跑到了1500+ms。

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
using namespace std;

int N,M,K,S,T,A,B,C,cnt;
int first[10010],next[100010];
int de[10010][11],used[10010][11];
struct maple{
    int f,t,d;
}Rode[100010];
struct edge{
    int f,k;
};
queue<edge>q;

void Build(int f,int t,int d)
{
    Rode[++cnt]=(maple){f,t,d};
    next[cnt]=first[f];
    first[f]=cnt;
}
void SPFA()
{
    memset(de,63,sizeof(de));
    used[S][K]=1;
    de[S][K]=0;
    q.push((edge){S,K});
    while(!q.empty())
    {
        edge a=q.front();
        q.pop();
        used[a.f][a.k]=0;
        for(int i=first[a.f];i;i=next[i])
        {
            if(a.k>=1&&de[Rode[i].t][a.k-1]>de[a.f][a.k]) // 这条航线免费 
            {
                de[Rode[i].t][a.k-1]=de[a.f][a.k];
                if(!used[Rode[i].t][a.k-1]&&de[Rode[i].t][a.k-1]<de[T][0])
                {
                    used[Rode[i].t][a.k-1]=1;
                    q.push((edge){Rode[i].t,a.k-1}); 
                }
            }
            if(de[Rode[i].t][a.k]>de[a.f][a.k]+Rode[i].d) // 这条航线不免费 
            {
                de[Rode[i].t][a.k]=de[a.f][a.k]+Rode[i].d;
                if(!used[Rode[i].t][a.k]&&de[Rode[i].t][a.k]<de[T][0])
                {
                    used[Rode[i].t][a.k]=1;
                    q.push((edge){Rode[i].t,a.k}); 
                }
            }
        }
    }
}
int main()
{
    scanf("%d%d%d%d%d",&N,&M,&K,&S,&T);
    for(int i=1;i<=M;++i)
    {
        scanf("%d%d%d",&A,&B,&C);
        Build(A,B,C);
        Build(B,A,C);
    }
    SPFA();
    printf("%d",de[T][0]);
    return 0;
}
Multisim实战:从8选1到32选1数据选择器的完整搭建指南(附常见问题解决) 本文提供了一份详尽的Multisim实战指南,手把手教你从基础的8选1数据选择器开始,逐步级联搭建16选1乃至32选1数据选择器。文章深入剖析了级联的核心逻辑、片选方案以及使用译码器的专业方法,并附带了电源连接、输出冲突、信号毛刺等常见问题的诊断与解决技巧,帮助电子工程学生和爱好者扎实掌握数字电路的系统设计与仿真调试。 阅读详情

相关推荐

FreeCAD MCP实战:用自然语言驱动AI建模,效率提升10倍

MCP(Model Context Protocol)是一种让AI模型调用外部工具和数据的协议标准,通过标准化通信层解决AI与CAD软件之间的交互难题。其原理是向AI暴露工具清单,AI根据自然语言需求自动选择工具并填充参数。在工程实践中,这一技术显著降低了CAD建模门槛,将重复性操作从手动点击转为语音指令,适用于批量零件生成、参数化设计等场景。FreeCAD作为开源CAD,凭借开放的Python API和脚本化能力,成为落地MCP的理想平台。本文基于FreeCAD MCP的实操经验,分享环境搭建、自然语言建

weixin_31188927的博客 323

BZOJ ~ 2763 ~ [JLOI2011]飞行路线 (分层图最短路,模板题)

思路:对于k次免费花费,我们可以把图想像为有k+1层,从第0层到第k层,第0层表示没有用过这k次机会,第i层表示用过i次免费花费。对于分层,有两种方法。本题为双向边。注意:最后要从所有层中的终点找答案,因为如果s-t只有少于k条路,而你选取免费k次在到达终点的答案就可能不对。1.建图时分层:建k+1层图。然后有边的两个点,多建一条到下一层边权为0的单向边,如果走了这条边就表示用了一次免费机会比如共...

张松超的博客 796

AWS入门实践-如何在AWS云上创建一个内外网隔离的生产环境

在 AWS 上建立一个内外网分离的生产环境,可以减少应用服务的暴露面,有效的保证你的应用服务器的安全。通常我们会将web应用放在外网的子网内,数据库服务器等放在内网的子网。我们将按照下图来部署动手实践环境,实现在public subnet的EC2虚拟机可以直接通过互联网可以访问,在Private subnet的EC2虚拟机不能通过互联网直接访问,但是却可以在内部来访问互联网安装应用等等。

weixin_39108752的博客 2994

[BZOJ 2763] 飞行路线 ——分层图

BZOJ 2763 飞行路线 以本题讲解分层图的用法: 在解决一些图论问题的时候,如果有一些修改的操作,比如如此题中允许免费k次这样的操作,显然在一层图中跑最短路会出问题,因此我们想到一种分层图的概念 如果我们将免费k次,抽象成建立k成图,到下一层便是免费一次【边权为0】。这样再跑一遍最短路便可以解决问题 #include using namespace std; #define

qq_31029725的博客 554

windows中如何将已安装的nodejs高版本降级为低版本

第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车(或者鼠标直接点击电脑左面最左下角的win窗口图标弹出,输入cmd再点击回车键) 然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠标点击电脑左面最左下角的win窗口图标弹出,输入“控制面板”再点击回车键进入,进入控制面板后,找到所安装的node.js并

weixin_44582077的博客 9万+

在银河麒麟V10上部署Atlas 300i Duo:从固件到驱动的一站式踩坑笔记

日期:2025-09-09关键词:鲲鹏920、Atlas 300i Duo、银河麒麟V10、NPU、驱动、固件。

weixin_41544125的博客 2809

BZOJ 2763: [JLOI2011]飞行路线

Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多k种航线上搭乘飞机。那么Alice和Bob这次

jjs98 967

【扫地机器人测试】

本测试方案旨在系统性评估扫地机器人的核心功能、性能指标、可靠性及用户体验,验证产品是否符合设计规范、行业标准及市场需求。通过多维度、全场景的测试,精准定位产品缺陷与优化空间,为产品迭代提供数据支撑,确保上市产品的质量稳定性与用户满意度。

xuhuaiyaun的博客 1371

[bzoj2763]飞行路线 分层图最短路

题目←大意题面里很清楚了…… 难得没wa就过了的题啊,大哭 建图方式见网络提速

LOI_pingxing的博客 553

BurpSuite+安卓模拟器双保险:避开真机抓包限制的完整配置指南

本文详细介绍了如何通过BurpSuite与安卓模拟器(如雷电、夜神)协同工作,绕过真机抓包限制的完整配置指南。从环境准备、网络拓扑配置到证书部署和流量分析,提供了一套高效的解决方案,帮助安全测试人员稳定捕获手机数据包,提升测试效率。

Apple的专栏 439

基于STM32、HAL库的IP2736U_EF快充协议芯片简介及驱动程序设计

@param connected: 连接状态指针 (1=已连接, 0=未连接)= 0x2736) // 检查厂商ID。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。* @param hip: IP2736U句柄指针。

corlin6688的博客 430

BZOJ 2763: [JLOI2011]飞行路线 最短路

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2763题意:题解:最短路,在转移dis的时候多开一维k就好了 dis[i][j]->dis[t][j]+e[i][t] dis[i][j]->dis[t][j+1] if j代码:#include <bits/stdc++.h> using namespace std; typedef l

yxg_123的博客 451

华为OD机试真题新系统-空间占用计算(Py/Java/C/C++/Js/Go)

华为OD机试新系统机试真题 【空间占用计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【空间占用计算】。

qq_45776114的博客 3437

[BZOJ2763][JLOI2011][分层图最短路]飞行路线

Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多k种航线上搭乘飞机。那么Alice和Bob这次出行最少花费多少?

gaotianyu1350的专栏 3192

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

bzoj2763 [JLOI]飞行路线 分层图最短路

问题描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多k种航线上搭乘飞机。那么Alice和Bob这次出行最少...

dizou7578的博客 152

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

BZOJ 2763 JLOI 2011 飞行路线 分层图+最短路

题目大意:两个小屁孩要乘飞机去旅行。现在给一些无向边和边权,另外他们还有K次免费乘坐飞机的机会,问从起点到终点的最小话费是什么。 思路:分层图第一题。之前听到分层图还以为是真的建K个图,然后不同层数之间的点连边跑最短路。。后来经同学讲解才发现我想多了。。 其实还是动归的思想(最短路不也是动归的思想么(`・ω・´)),f[ i ][ j ]表示在j位置时,已经用了i次免费机会的时候的最小

(╯°口°)╯(┴—┴ 1716

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

「BZOJ2763」[JLOI2011]飞行路线【分层图最短路】

2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 6174 Solved: 2498 [Submit][Status][Discuss] Description AliceAliceAlice和BobBobBob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在nnn个城市设有业务,设这些...

wzw 354

[bzoj2763]2763: [JLOI2011]飞行路线 分层图最短路

二的一笔

Unlimited Code Works 366

BZOJ2763[JLOI2011]飞行路线【分层图最短路】

[JLOI2011]飞行路线[JLOI2011]飞行路线[JLOI2011]飞行路线 Description: Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们...

qq_43710979的博客 238

BZOJ2763[JLOI2011]飞行路线 【分层图最短路】

链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2763 题意:中文题。。 分析:建分层图,由于是双向边,在相邻两层图中也加上反向边。然后跑一边heap+dijkstra。 代码: #include #include #include #include #include #include #include #include

Fb_by 650

【JLOI2011】【bzoj2763】飞行路线 分层图最短路

DescriptionAlice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多k种航线上搭乘飞机。那么Alice和Bob这次出行最少花

DQS的树洞 762

【BZOJ 2763】[JLOI2011]飞行路线(分层图+最短路)

2763: [JLOI2011]飞行路线 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 4862 Solved: 1913 [Submit][Status][Discuss] Description Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,...

duanghaha的博客 304

bzoj2763[JLOI2011]飞行路线 分层图最短路

裸的分层图最短路,直接做就好了,问题是手动循环队列的那个地方要加上,不然RE到爽。。而且注意加上了以后改变一下队列的存储顺序。。#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(i

老臣 864

BZOJ2763 飞行路线 - 分层图 - 最短路

我们把原图复制出k层,而题中给的k次免费机会,就是连接不同层次图的道路,并且遍权为0。 使用免费机票的时候,就跳到上面那一层,并且没有任何花费。 这样求一遍最短路就可以得到使用免费机票次数小于等于k的最短路 也可以从dp的角度理解: dp[v][i] = min(dp[v][i], dp[u][i] + c) 同层图转移 dp[v][i+1] = min(dp[u][i], dp[v]...

Zolrk的博客 476

【 BZOJ 2763 】【 飞行路线 】【 分层图 最短路 模型 】

推荐博客 (详细) : 本题 + 分层图最短路 讲解 双端队列:如果对一个点更新,当前点比我队首的元素值还小,那么我就把这个点加在队首,否则加在队尾。 因此,利用双端队列 优化 Spfa   #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;cmath&gt; #include &lt;algorithm&gt; ...

violinwang 230

【bzoj2763】[JLOI2011]飞行路线 分层图最短路

题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司。该航空公司一共在n个城市设有业务,设这些城市分别标记为0到n-1,一共有m种航线,每种航线连接两个城市,并且航线有一定的价格。Alice和Bob现在要从一个城市沿着航线到达另一个城市,途中可以进行转机。航空公司对他们这次旅行也推出优惠,他们可以免费在最多k种航线上搭乘飞机。那么Alice和Bob这次出行最少花费多少?...

weixin_30758821的博客 75
上一篇: 洛谷 2587 泡泡堂(贪心)
下一篇: <考试题> codevs 5440 运输计划 (二分+lca+dfs序+树上差分)
Loi_Mapleleaf
博客等级 码龄10年 17粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值