在郊区有 N 座通信基站,P 条双向电缆,第 i 条电缆连接基站AiAi和BiBi。

特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。

现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费LiLi。

电话公司正在举行优惠活动。

农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。

农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。

求至少用多少钱可以完成升级。

输入格式

第1行:三个整数N,P,K。

第2..P+1行:第 i+1 行包含三个整数Ai,Bi,LiAi,Bi,Li。

输出格式

包含一个整数表示最少花费。

若1号基站与N号基站之间不存在路径,则输出”-1”。

数据范围

0≤K<N≤10000≤K<N≤1000,
1≤P≤100001≤P≤10000,
1≤Li≤10000001≤Li≤1000000

输入样例:

5 7 1
1 2 5
3 1 4
2 4 8
3 2 3
5 2 9
3 4 7
4 5 6

输出样例:

4代码:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<set>
#include<vector>
#include<map>
#include<cmath>const int N=1000000+10,M=1000000+10;
typedef long long ll;
using namespace std;int n,p,k;
int tot=0;
priority_queue< pair<int ,int> > q;
struct edge
{int u,v;int  w;int nxt;
}Edge[M];
int head[N],dis[N];
bool v[N];void add(int u,int v,int w)
{Edge[++tot].u=u;Edge[tot].v=v;Edge[tot].w=w;Edge[tot].nxt=head[u];head[u]=tot;
}
void dijkstra()
{memset(dis,0x3f3f3f3f,sizeof(dis));dis[1]=0;q.push(make_pair(0,1));while(q.size()){int x=q.top().second;q.pop();if(v[x]) continue;v[x]=true;for(int i=head[x];i;i=Edge[i].nxt){int y=Edge[i].v,z=max(Edge[i].w,dis[x]);if(dis[y]>z){dis[y]=z;q.push(make_pair(-dis[y],y));}}}
}int main()
{scanf("%d%d%d",&n,&p,&k);for(int i=1,x,y,z;i<=p;i++){scanf("%d%d%d",&x,&y,&z);add(x,y,z);add(y,x,z);for(int j=1,z1=0;j<=k;j++){add(x+(j-1)*n,y+j*n,z1);add(y+(j-1)*n,x+j*n,z1);add(x+j*n,y+j*n,z);add(y+j*n,x+j*n,z);}}for(int i=1,z=0;i<=k;i++)add(i*n,(i+1)*n,z);dijkstra();if(dis[k+1]*n>=0x3f3f3f3f){puts("-1");}elseprintf("%d",dis[(k+1)*n]);return 0;
}

转载于:https://www.cnblogs.com/Staceyacm/p/11319928.html

340. 通信线路(分层图最短路)相关推荐

  1. POJ - 3662 Telephone Lines(分层图最短路)

    题目链接:点击查看 题目大意:在郊区有N座通信基站,P条双向电缆,第i条电缆连接基站Ai和Bi.特别的,1号基站是通信公司的总站,N号基站位于一座农场中.现在,农场主希望对通信线路进行升级,其中升级第 ...

  2. 图论 ---- E. Minimum Path(分层图最短路 用分层图对边权操作进行选择)

    题目链接 题目大意: 两点间最短路的定义变成:所有的边之和−max+min所有的边之和-max+min所有的边之和−max+min 解题思路: 这里很明显就是变成了最短路的时时候就是把路径上边权最小值 ...

  3. BZOJ2662[BeiJing wc2012]冻结——分层图最短路

    题目描述 "我要成为魔法少女!"      "那么,以灵魂为代价,你希望得到什么?"  "我要将有关魔法和奇迹的一切,封印于卡片之中„„"  ...

  4. 洛谷 - P4009 汽车加油行驶问题(分层图最短路/最小费用最大流)

    题目链接:点击查看 题目大意:给出一个n*n的矩阵表示道路,途中有一些加油站,现在要从点(1,1)到达点(n,n),问最小花费,其中的一些规则如下: 汽车只能沿着网格边行驶,装满油后可以行驶K条边,出 ...

  5. codeforces1473 E.Minimum Path(分层图最短路)

    E - Minimum Path 分层图最短路 第一个分层图 第0层就是按照题中给的点连边,从第0层到第1层我们连一条边权是0的边,从第1层到第2层连一条边权是原先边权2倍的边,当然第1层以及第2层之 ...

  6. 【bzoj2834】回家的路 分层图最短路

    题目描述 输入 输出 样例输入 2 1 1 2 1 1 2 2 样例输出 5 题解 分层图最短路 dis[i][0]表示到i为横向时起点到i的最短路,dis[i][1]表示到i为纵向时起点到i的最短路 ...

  7. 【算法练习】CodeVs1391 伊吹萃香(分层图最短路)

    题意 在幻想乡,伊吹萃香是能够控制物体密度的鬼王.因为能够控制密度,所以萃香能够制造白洞和黑洞,并可以随时改变它们.某一天萃香闲着无聊,在妖怪之山上设置了一些白洞或黑洞,由于引力的影响,给妖怪们带来了 ...

  8. Loj#6223 Luogu P4009 汽车加油行驶 分层图最短路

    这是本蒟蒻博客的第一篇文章,不规范之处敬请各位大佬指正和谅解orz Loj#6223+Luogu P4009 文章目录 前言 一.建模 二.代码实现 1.节点在图中的编号(分层图的存储) 2.建边 对 ...

  9. HDU 5669 Road(线段树建树)(分层图最短路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5669 [分析]线段树建树+分层图最短路 #include <cstdio> #includ ...

最新文章

  1. java对xml文件的解析_Java对XML文件的解析
  2. DCMTK:OFStandard中“转换为标记”代码的测试程序
  3. VBScript的参数引用
  4. Java类加载机制的理解
  5. C++运算符重载函数作为类成员函数和友元函数
  6. poll/epoll/keyed-poll/keyed-epoll的唤醒--分层次的解决方案
  7. This is probably not a problem with npm. There is likely additional logging
  8. 布林通道参数用20还是26_这样设置均线参数
  9. C#中使用消息队列服务
  10. BZOJ1305 [CQOI2009]dance跳舞 【网络流】
  11. PHP 官方被黑与“网络军火商”Zerodium 有关?CEO 辟谣:这个漏洞就是垃圾
  12. opencv python 读取图像/显示图像/保存图像
  13. 电信网关改造无线打印服务器,电信天翼网关路由改桥接流程
  14. xp计算机图标怎么设置在桌面显示,电脑系统是XP的,界面的“我的电脑”图标不知怎么变成快捷方式了...
  15. Anaconda 安装pkgs
  16. SmartScore 64 Professional Edition v11.3.76 WiN 专业乐谱扫描识别软件
  17. thinkphp3.2 数据库 AND OR连缀使用
  18. VOIP信号传输过程
  19. 解决mysql的赋权操作之GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION问题
  20. 计算机任意符号,如何打特殊符号,勾勾叉叉之类(非输入法,任意电脑)

热门文章

  1. Java的知识点28——文件编码、IO流的实例
  2. 多款eclipse黑色坏境任你选择,只要导入配置
  3. C++ leetCode 判断一个整数是否为回文数 9. 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
  4. IAR J-Link下载程序出现错误提示:Failed to get CPU status after 4 retries Retry?
  5. sdut 2140 有向图中是否存在拓扑序列的判断
  6. 第八周项目实践2 建立连串算法库
  7. 自组织神经网络的实现
  8. 第一章:1.1 信号表征
  9. Til the Cows Come Home (最短路问题, 模板)
  10. A. Many Equal Substrings(自己很水)