题意:求1到N的最短路,最短路的定义为路径上最大的K条边。

思路:对于每种边权,假设为X,它是第K大,那么小于X的变为0,大于K的,边权-X。然后求最短路,用dis[N]+K*X更新答案。

而小于K的情况下,最短路显然就是原图的最短路。(还是不好想的

#include<bits/stdc++.h>
#define ll long long
#define mp make_pair
#define pii pair<ll,int>
#define F first
#define S second
const int maxn=;
const ll inf=1LL<<;
using namespace std;
vector<pii>G[maxn]; int vis[maxn],N; ll a[maxn],ans,dis[maxn];
void dijs(ll x)
{
priority_queue<pii,vector<pii>,greater<pii> >q;
int vis[maxn];
for(int i=;i<=N;i++) dis[i]=inf,vis[i]=;
q.push(mp(,)); dis[]=;
while(!q.empty()){
pii t=q.top(); q.pop();
int u=t.S, L=G[u].size();
for(int i=;i<L;i++){
int v=G[u][i].S; ll c=G[u][i].F-x;
if(c<) c=;
if(dis[v]>dis[u]+c){
dis[v]=dis[u]+c;
if(!vis[v]) vis[v]=,q.push(mp(dis[v],v));
}
}
vis[u]=;
}
}
int main()
{
int M,K,u,v,i; ll c;
scanf("%d%d%d",&N,&M,&K);
for(i=;i<=M;i++){
scanf("%d%d%I64d",&u,&v,&c);
G[u].push_back(mp(c,v));
G[v].push_back(mp(c,u));
a[i]=c;
}
dijs(); ans=dis[N];
for(i=;i<=M;i++) {
dijs(a[i]);
ll tmp=dis[N]+(ll)K*a[i];
ans=min(tmp,ans);
}
printf("%I64d\n",ans);
return ;
}

Gym:101630J - Journey from Petersburg to Moscow(最短路)的更多相关文章

  1. Codeforces Gym 101630J Travelling from Petersburg to Moscow (最短路)

    题目链接 http://codeforces.com/gym/101630/attachments 题解 zyb学长的题. 先枚举第\(k\)大的边权,设其边权为\(x\),然后把每条边边权减掉\(x ...

  2. NEERC17 J Journey from Petersburg to Moscow

    CF上可以提交.   链接 依然是很妙的解法. 我们可以枚举每一个出现过的边权$L$,然后把所有边的边权减掉这个$L$,如果小于$L$就变为$0$,然后跑一遍最短路然后加上$k * L$更新答案即可. ...

  3. Gym 100801J Journey to the "The World's Start"(二分+单调队列)

    题意: 现在有1,2,3...N这N个站, 给定限定时间Limt,  N-1种票的价格, 分别对应一个最远距离,  叫你选择一种票, 满足可以在规定时间到达N站台,而且价格最低 思路: 如果买距离为L ...

  4. 【CF721C】Journey(拓扑排序,最短路,DP)

    题意:给一个无环的图,问用不超过T的时间从1到n最多可以经过多少个点.要求输出一条路径. 思路:因为无环,可以用DP做.不过因为时间最短的原因要拓扑排序后再DP,目测由底向上的更新也是可以的. ; . ...

  5. NEERC-2017

    A. Archery Tournament 用线段树套set维护横坐标区间内的所有圆,查询时在$O(\log n)$个set中二分查找即可. 时间复杂度$O(n\log^2n)$. #include& ...

  6. 2017 NEERC

    2017 NEERC Problem A. Archery Tournament 题目描述:在二维平面上,会陆续出现一些圆,以及一些询问,询问点是否在圆内,如果是,则输出那个圆,并把那个圆删掉,否则输 ...

  7. Gym 102056L - Eventual … Journey - [分类讨论][The 2018 ICPC Asia-East Continent Final Problem L]

    题目链接:https://codeforces.com/gym/102056/problem/L LCR is really an incredible being. Thinking so, sit ...

  8. Gym 100801 J. Journey to the “The World’s Start” DP+单调队列优化+二分

    http://codeforces.com/gym/100801 题目大意:有从左到右有n个车站,有n-1种车票,第i种车票一次最多可以坐 i 站(1<=i<=n)   每种票有固定的价钱 ...

  9. [Gym]2008-2009 ACM-ICPC, NEERC, Moscow Subregional Contest

    比赛链接:http://codeforces.com/gym/100861 A模拟,注意两个特殊的缩写. #include <bits/stdc++.h> using namespace ...

随机推荐

  1. 深入了解Struts1的执行机理

    要说Struts1的工作流程.就必需要说一下Model1和Model2了.由于这个框架是踏着他们的尸骨一步一步的发展起来的. Model1开发模式,想想我们刚刚開始接触Java的时候,我们用的就是这样 ...

  2. vue-bus 组件通信插件

    vue-bus 一个 Vue.js 事件中心插件,同时支持 Vue 1.0 和 2.0 原因 Vue 2.0 重新梳理了事件系统,因为基于组件树结构的事件流方式实在是让人难以理解,并且在组件结构扩展的 ...

  3. 华为AI应用创新大赛即将开启!公开课已备好!

    为鼓励开发者创新,挖掘前沿创新能力的应用及服务,帮开发者打造爆款应用的同时丰富终端消费者的用户体验,由设立10亿激励基金耀星计划扶持的华为创新竞赛平台即将开启. 竞赛平台将滚动推出AI.HAG.AR. ...

  4. JavaWeb、J2-SE开发框架——Spring

    相关博客:   2.spring官网 1.使用Spring的jdbcTemplate进一步简化JDBC操作

  5. 深入Asyncio(十二)Asyncio与单元测试

    Testing with asyncio 之前有说过应用开发者不需要将loop当作参数在函数间传递,只需要调用asyncio.get_event_loop()即可获得.但是在写单元测试时,可能会需要用 ...

  6. js document.queryCommandState() 各个参数

    命令标识符 2D-Position 允许通过拖曳移动绝对定位的对象. AbsolutePosition 设定元素的 position 属性为“absolute”(绝对). BackColor 设置或获 ...

  7. OpenCV 入门示例之五:一个复杂点的变换

    前言 前文介绍了一个简单的变换.需要注意的是,很多时候,输出和输入图像的格式是不同的( 大小,深度,通道 ).在本文将展示的程序中,对图像进行了缩放( 使用cvPyrDown 函数 ),这种情况下需要 ...

  8. java 白皮书的关键术语

    [0]README 0.1) 本文转自 core java volume 1,仅供了解,所谓爱屋及乌嘛: 0.2) java的设计者编写了颇有影响力的白皮书,用来解释设计的初衷以及完成的情况,并发布了 ...

  9. Android——4.2 - 3G移植之路之 reference-ril .pppd 拨号上网 (三)

    Android的RIL机制中的 reference-ril.c 即为厂商提供的驱动接口.这个驱动源代码各个厂商都是有提供的,网上也有下载.我如今用的就是huawei wcdma的.最后编译成libre ...

  10. 漫反射和Lambert模型

    粗糙的物体表面向各个方向等强度地反射光,这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection).产生光的漫反射现象的物体表面称为理想漫反射体,也称为朗伯(Lambert) ...