传送门

发现到 $K$ 不大,考虑有什么和 $K$ 有关的结论

发现答案似乎只会经过前 $K$ 小的边,如果边权第 $K$ 小的边有多条那么可以任意取

证明挺显然的吧,首先如果走了边权排名大于 $K$ 的边那么总的排名也一定大于 $K$,并且如果经过第 $K$ 名的边那么我们就只要考虑只走这一条边的路径,不然总路径排名也一定大于 $K$

那么对于第 $K$ 名的边我们不用考虑它对图的贡献,任取即可

然后把有用的边和点拿出来离散化一下,那么总点数小于等于 $800$ ,直接 $floyd$ 然后对所有路径排序即可

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=; char ch=getchar();
while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
return x*f;
}
const int N=,M=2e5+;
int n,m,K;
struct edge {
int u,v,w;
edge (int _u=,int _v=,int _w=) { u=_u,v=_v,w=_w; }
inline bool operator < (const edge &tmp) const {
return w<tmp.w;
}
}E[M];
int d[N];
ll dis[N][N],D[N];
int main()
{
n=read(),m=read(),K=read(); int a,b,c;
for(int i=;i<=m;i++)
{
a=read(),b=read(),c=read();
E[i]=edge(a,b,c);
}
sort(E+,E+m+); int tot=;
for(int i=;i<=min(m,K);i++)
d[++tot]=E[i].u,d[++tot]=E[i].v;
sort(d+,d+tot+); tot=unique(d+,d+tot+)-d-;
memset(dis,0x3f,sizeof(dis));
for(int i=;i<=tot;i++) dis[i][i]=;
for(int i=;i<=min(m,K);i++)
{
int x=lower_bound(d+,d+tot+,E[i].u)-d;
int y=lower_bound(d+,d+tot+,E[i].v)-d;
dis[x][y]=dis[y][x]=E[i].w;
}
for(int k=;k<=tot;k++)
for(int i=;i<=tot;i++)
for(int j=;j<=tot;j++)
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
int cnt=;
for(int i=;i<=tot;i++)
for(int j=i+;j<=tot;j++) D[++cnt]=dis[i][j];
sort(D+,D+cnt+);
printf("%lld\n",D[K]);
return ;
}

Codeforces 1196F. K-th Path的更多相关文章

  1. codeforces#1196F. K-th Path(最短路,思维题)

    题目链接: https://codeforces.com/contest/1196/problem/F 题意: 在无向图的所有最短路点对中,求出第$k$大 数据范围: $ 1 \leq k \leq ...

  2. K-th Path CodeForces - 1196F

    题目链接:https://vjudge.net/problem/CodeForces-1196F 题意:从图中找出第K短的最短路,最短路:从一个点到另一个的最短距离. 思路:题目说了,每两个点之间的边 ...

  3. Codeforces gym102152 K.Subarrays OR

    传送:http://codeforces.com/gym/102152/problem/K 题意:给定$n(n\le10^5)$个数$a_i(a_i\le10^9)$,对于任一个子数组中的数进行或操作 ...

  4. codeforces 1133E K Balanced Teams

    题目链接:http://codeforces.com/contest/1133/problem/E 题目大意: 在n个人中找到k个队伍.每个队伍必须满足最大值减最小值不超过5.求满足条件k个队伍人数的 ...

  5. Codeforces 1133E - K Balanced Teams - [DP]

    题目链接:https://codeforces.com/contest/1133/problem/C 题意: 给出 $n$ 个数,选取其中若干个数分别组成 $k$ 组,要求每组内最大值与最小值的差值不 ...

  6. codeforces 762 D. Maximum path(dp)

    题目链接:http://codeforces.com/problemset/problem/762/D 题意:给出一个3*n的矩阵然后问从左上角到右下角最大权值是多少,而且每一个点可以走上下左右,但是 ...

  7. codeforces 1269E K Integers (二分+树状数组)

    链接:https://codeforces.com/contest/1269/problem/E 题意:给一个序列P1,P2,P3,P4....Pi,每次可以交换两个相邻的元素,执行最小次数的交换移动 ...

  8. codeforces 1282B2. K for the Price of One (Hard Version) (dp)

    链接 https://codeforces.com/contest/1282/problem/B2 题意: 商店买东西,商店有n个物品,每个物品有自己的价格,商店有个优惠活动,当你买恰好k个东西时可以 ...

  9. Codeforces 544E K Balanced Teams (DP)

    题目: You are a coach at your local university. There are nn students under your supervision, the prog ...

随机推荐

  1. Centos7下设置MySql自动启动

    原文链接:http://www.cnblogs.com/Sungeek/p/9687565.html 1.将服务文件拷贝到init.d下,并重命名为mysql cp /usr/local/mysql/ ...

  2. $\LaTeX$数学公式大全1

    $1\ Geek\ and\ Hebrew\ letters$$\alpha$ \alpha$\beta$ \beta$\chi$ \chi$\delta$ \delta$\epsilon$ \eps ...

  3. 关于SpringBoot跨域的问题

    直接在启动类里面加这一段代码就行: @Bean public CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource sourc ...

  4. Amaple.js框架详细介绍

    Amaple · 体验优先的JavaScript单页框架 Amaple (点此查看Github仓库)是专为单页web应用而设计的基于页面模块化的JavaScript框架,它可使开发者快速开发单页web ...

  5. 【python / mxnet / gluoncv / jupyter notebook】基于mxnet和gluoncv的图像内容识别

    程序环境为高性能集群:CPU:Intel Xeon Gold 6140 Processor * 2(共36核心)内存:512GB RAMGPU:Tesla P100-PCIE-16GB * 2 In  ...

  6. 石川es6课程---7、数组

    石川es6课程---7.数组 一.总结 一句话总结: ^ 主要就map(映射:一个对一个),reduce(汇总:一堆出来一个),filter  过滤器,forEach 循环(迭代) 四个方法 ^ 使用 ...

  7. Android OkHttp3简介和使用详解

    一 OKHttp简介 OKHttp是一个处理网络请求的开源项目,Android 当前最火热网络框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpC ...

  8. openerp学习笔记 单据自动编号(编码规则)

    说明: 单据自动编码允许定义 单据前缀+按当前年.月.日.时.分.秒+流水号+单据后缀 单据自动编号允许按所有公司统一编号或按分公司单独编号 单据自动编号中的流水号部分未按月重新编号,不断累计,当超出 ...

  9. Helm chart仓库官方仓库不能使用解决方法

    Helm chart仓库官方仓库不能使用解决方法 k8s中的官方helm chart仓库在国内可能使用不了,但是我们又需要使用,这里推荐几个方法. 使用其他的chart仓库 微软的chart仓库 ht ...

  10. linux添加用户所在群组

    etc目录下面有两个文件一个passwd一个grouppasswd里gid是主组,其他组是扩展组,扩展组在/etc/group里描述.useradd username如果不指定,默认创建一个与uid相 ...