K-th Path CodeForces - 1196F
题目链接:https://vjudge.net/problem/CodeForces-1196F
题意:从图中找出第K短的最短路,最短路:从一个点到另一个的最短距离。
思路:题目说了,每两个点之间的边小于等于1,那么如果我们只取K条边,
那么顶点数 V∈[K,2K],所以我们一定可以在K条边中的到第K短的最短路。
当然我们先要把所有变来一个sort,取权值小的K条边。
之后跑一个floyd就可以了,然后把所有最短路存下来,找出第K小的最短路。
ps(这里的编号很方便,我是参考另一个大佬的,这里说明一下,当然也可以和我之前一样,
来个计数的慢慢编号)。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
#include <map>
#include <cmath>
#include <iomanip>
using namespace std; typedef long long LL;
#define inf (1LL << 60)
#define rep(i,j,k) for(int i = (j); i <= (k); i++)
#define rep__(i,j,k) for(int i = (j); i < (k); i++)
#define per(i,j,k) for(int i = (j); i >= (k); i--)
#define per__(i,j,k) for(int i = (j); i > (k); i--) const int N = (int)2e5 + ;
LL tmp[N];
LL dis[][];
int n,m,k;
map<int, int> s;
int tot; struct node{
int u;
int v;
int w; bool friend operator < (node a,node b){
return a.w < b.w;
} }o[N]; int ID(int x){
if(s.count(x)) return s[x];
return s[x] = ++tot;
} int main(){ ios::sync_with_stdio(false);
cin.tie(); cin >> n >> m >> k; int u,v,w,l = ;
//存边
rep(i,,m){
cin >> u >> v >> w;
o[l].u = u;
o[l].v = v;
o[l++].w = w;
}
//sort边,取前K条
sort(o,o + m); rep(i,,) rep(j,,){
if(i == j) dis[i][j] = ;
else dis[i][j] = inf;
} //建图
rep__(i,,min(m,k)){
dis[ID(o[i].u)][ID(o[i].v)] = dis[ID(o[i].v)][ID(o[i].u)] = o[i].w;
} rep(k,,tot) rep(i,,tot) rep(j,,tot){
dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);
} l = ;
rep(i,,tot) rep(j,i + ,tot){
tmp[l++] = dis[i][j];
} sort(tmp, tmp + l); cout << tmp[k - ] << endl; getchar();getchar(); return ;
}
K-th Path CodeForces - 1196F的更多相关文章
- codeforces#1196F. K-th Path(最短路,思维题)
题目链接: https://codeforces.com/contest/1196/problem/F 题意: 在无向图的所有最短路点对中,求出第$k$大 数据范围: $ 1 \leq k \leq ...
- Codeforces 1196F. K-th Path
传送门 发现到 $K$ 不大,考虑有什么和 $K$ 有关的结论 发现答案似乎只会经过前 $K$ 小的边,如果边权第 $K$ 小的边有多条那么可以任意取 证明挺显然的吧,首先如果走了边权排名大于 $K$ ...
- Shortest Path Codeforces - 59E || 洛谷P1811 最短路_NOI导刊2011提高(01)
https://codeforces.com/contest/59/problem/E 原来以为不会..看了题解发现貌似自己其实是会的? 就是拆点最短路..拆成n^2个点,每个点用(i,j)表示,表示 ...
- Dynamic Shortest Path CodeForces - 843D (动态最短路)
大意: n结点有向有权图, m个操作, 增加若干边的权重或询问源点为1的单源最短路. 本题一个特殊点在于每次只增加边权, 并且边权增加值很小, 询问量也很小. 我们可以用johnson的思想, 转化为 ...
- President's Path CodeForces - 416E (最短路,计数)
大意: 给定无向图, 求任意两点间所有最短路经过的边数 刚开始想先用floyd跑出最短路, 然后在DAG上DP, 交了1发, 发现会算重复 贴一下题解的做法 #include <iostream ...
- K Balanced Teams CodeForces - 1133E (Dp)
题意: 给出 n 个数,选取其中若干个数分别组成至多 k 组,要求每组内最大值与最小值的差值不超过5,求最后被选上的总人数. 题解: 将a[1∼n] 从小到大排序, f[i][j] 表示到第 i 个数 ...
- Maximum path CodeForces - 762D
大意: 3*n矩阵, 求从(1,1)->(3,n)路径最大点权和. 核心观察是每个点回头一定不会超过1, 这是因为只有三行, 若回头两格一定是$9$个位置全走, 显然可以找到一种只会头一格的方案 ...
- Codeforces 1103 C. Johnny Solving
Codeforces 1103 C. Johnny Solving 题目大意: 有一张 \(n\) 个点 \(m\) 条边的简单无向图,每个点的度数至少为 \(3\) ,你需要构造出两种情况之一 一条 ...
- Fling——K
K. Fling Fling is a kind of puzzle games available on phone.This game is played on a board with 7 ro ...
随机推荐
- [HeadFrist-HTMLCSS学习笔记]第七、八章
[HeadFrist-HTMLCSS学习笔记]第七章CSS入门:加一点样式 重点噻 段落添加背景颜色 p{ background-color: red; } 文本颜色 p{ color: ,maroo ...
- Sourcetree 集成 Azure DevOps Server(Git)
概述- SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端管理工具,同时也是Mercurial和Subversion版本控制系统工具.支持创建.克隆.提交 ...
- POJ-最大连续子序列和
给定一个整数序列,找到一个具有最大和的连续子序列(子序列最少包含一个元素),返回其最大和. 实例输入: -2, 1, -3, 4, -1, 2, 1, -5, 4 实例输出: 6(连续子序列4, -1 ...
- MySQL 索引小结
1.!=.not in 在primary key上使用 !=.not in,explain 的 type 是 range,非primary key是全表扫描(即非主键字段即使有索引也无法应用) 2.a ...
- 第二节:EF Core的常规“增删改”及状态的变化
一. 整体说明 1. 本节用到的表 2. 状态说明补充 ①.Detached: 游离的状态,与数据库没有什么交涉,比如新new一个实体,状态就是Detached. ②.Added: 增加的状态. ③. ...
- Feign实现自定义错误处理
关键操作 实现ErrorDecoder接口 问题和背景 最近项目中在大量使用Feign和OkHttp作为http客户端使用,开发效率得到显著的提升.但也面临一些问题,比如每个下游系统的异常返回方式不同 ...
- 小知识点 之 JVM -XX:SurvivorRatio
JVM参数之-XX:SurvivorRatio 最近面试过程中遇到一些问JVM参数的,本着没用过去学习的办法看了些博客写得不准确,参考oracle的文档记录一下,争取每天记录一点知识点 -XX:Sur ...
- Java基础扫盲系列(二)—— Java中BigDecimal和浮点类型
一直以来我几乎未使用过BigDecimal类型,只有在DB中涉及到金额字段时听说要用Decimal类型,但是今天再项目代码中看到使用BigDecimal表示贷款金额. 本篇文章不是介绍BigDecim ...
- 动态代理(一)——JDK中的动态代理
在开始动态代理的描述之前,让我们认识下代理.代理:即代替担任执行职务.在面向对象世界中,即寻找另一个对象代理目标对象与调用者交互.Java中分为静态代理和动态代理.这里对于静态代理不做详述.它们之间的 ...
- 菜刀连接一句话木马出现:`Cannot call assert() with string argument dynamically`错误
前言 逆天还是上学那会玩渗透的,后来工作后就再也没碰了,所以用的工具还是以前经典款,这不,发现出问题了 问题 如果是PHP5则没有问题,如果是PHP7,会出现:Cannot call assert() ...