854. Floyd求最短路
Powered by:NEFU AB-IN
Link
文章目录
- 854. Floyd求最短路
- 题意
- 思路
- 代码
854. Floyd求最短路
题意
给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。
再给定 k 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出 impossible。
数据保证图中不存在负权回路。思路
注意
- 当用邻接矩阵存图时
- 处理重边:边取最小值,
dist[x][y] = min(dist[x][y], z)
- 处理自环:当
dist[i][i] = 0
- 不存在解:
dist[x][y] > INF // 2
因为邻接矩阵的遍历会遍历所有边,所以可能会有终点会被负权边更新,但与起点不通,所以还是无法到达的情况。所以只需判断最短路是否和INF一个量级即可
- 处理重边:边取最小值,
- 当用邻接矩阵存图时
代码
''' Author: NEFU AB-IN Date: 2022-03-03 15:45:54 FilePath: \ACM\Acwing\854.py LastEditTime: 2022-03-03 16:01:18 ''' N = int(250) INF = int(2e9) g = [[0] * N for _ in range(N)] dist = [[INF] * N for _ in range(N)]def floyd():for k in range(1, n + 1):for i in range(1, n + 1):for j in range(1, n + 1):dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j])n, m, q = map(int, input().split()) for i in range(1, n + 1):for j in range(1, n + 1):if i == j:dist[i][j] = 0for i in range(m):x, y, z = map(int, input().split())dist[x][y] = min(dist[x][y], z)floyd() for i in range(q):x, y = map(int, input().split())if dist[x][y] > INF // 2:print("impossible")else:print(dist[x][y])
854. Floyd求最短路相关推荐
- Floyd AcWing 854. Floyd求最短路
Floyd AcWing 854. Floyd求最短路 原题链接 AcWing 854. Floyd求最短路 算法标签 最短路 Floyd 思路 代码 #include<bits/stdc++. ...
- AcWing 854. Floyd求最短路(模板)
题目链接 https://www.acwing.com/problem/content/856/ 思路 我们用d[k][i][j]来表示经过前k个点中,或者说以前k个点作为中转更新从i到j最短路,那么 ...
- ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2760 题意: 给出一张有向带边权图,若不联通为-1.问不重叠的最 ...
- POJ - 2112 Optimal Milking(二分+二分图最大匹配-多重匹配(修改匈牙利实现)+Floyd求最短路)
题目链接:点击查看 题目大意:给出n个牛奶机器,再给出m只奶牛,每个机器只能让最多k只牛一起挤奶,现在问如何分配奶牛,能让最远的那只奶牛到达机器的距离最小 题目分析:很综合的一道题目了,不算很难,但比 ...
- 【图论】C059_AW_GF和猫咪的玩具 分糖果(floyd求最短路中的最长路 | 最后一个小朋友吃完的时间)
一.GF和猫咪的玩具 GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为1-n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同. GF左手拿起金属环L,猫咪右手(或者说:爪 ...
- Floyd算法求最短路
Floyd算法(基于动态规划):用于求多源汇最短路 初始化:用邻接矩阵d[i,j]存储中所有的边,floyd算法就是三重循环 for(k = 1;k <= n;k ++){ for(i = 1; ...
- 多源最短路径Floyd、Floyd求最小环【模板】
Floyd算法:用来找出每对点之间的最短距离.图可以是无向图,也可以是有向图,边权可为正,也可以为负,唯一要求是不能有负环. 1.初始化:将Map[][]中的数据复制到Dist[][]中作为每对顶点 ...
- 算法提高课-图论-单源最短路的建图方式-AcWing 920. 最优乘车:bfs求最短路、建图
题目分析 来源:acwing 分析: 本题难在抽象建图上,这里采用的建图方式是:同一条公交线路上,前面的站点都可以连一条有向边到其后面的站点,且边权都为1. 由于边权都是1,可以用bfs来求最短路. ...
- AcWing 845. 八数码(3阶数字华容道):bfs求最短路,状态表示困难
文章目录 题目 题目分析 题目 题目链接:AcWing 845. 八数码(数字华容道) 在一个3×3的网格中,1~8这8个数字和一个"x"恰好不重不漏地分布在这3×3的网格中. 例 ...
最新文章
- 【怎样写代码】参数化类型 -- 泛型(四):泛型之类型参数约束
- [LAMP]Apache和PHP的结合
- .net erp(办公oa)开发平台架构概要说明之表单设计器
- python configparser 注释_使用configpar添加注释
- Linux中cinder的作用,cinder
- 鼠标屏幕取词技术的原理和实现 (转)
- 内网通积分|免广告工具
- Wunderlist – 免费同步 Todo List
- U盘加密软件测试自学,利用联想USB接口加密软件给你的U盘加密、设定访问权限...
- 算法设计与分析 SCAU11083 旅游背包(优先做)
- 库克谈人工智能:增长飞快 兼具颠覆性和创造性
- java怎么给文件加密_java中如何给文件加密
- FREERTOS打印错误prvTaskExitError,找原因是如下:
- 什么是南向接口和北向接口,南北流量和东西流量
- 不足100克按100克C语言,C语言_第3章.ppt
- TCP原理之:linux网桥
- 公安专网与视频专网内使用离线互联网百度高德地图
- java 如何将base64 转成图片并保存,返回地址入库
- ABAP inner join 性能影响
- 智能汽车操作系统哪家强?黑莓QNX领跑,中兴/华为撑起中国方案
热门文章
- Shell脚本中dirname命令的使用
- 谈笑间学会数仓—主题域数据域
- HTML(常用标签与超链接)的案例
- SOLIDWORKS提供的“走查”功能,身临其境感受自己的设计 | 操作视频
- 拯救者15isk加装固态硬盘
- 查找代码文件中的非 ASCII 字符
- 雷电html查看程序编辑程序,雷电模拟器应用操作
- 我们公司财务不接受电子发票纸质打印报销,这合理吗?
- 联想android刷机教程,联想Z5 Pro(安卓9.0)一键刷机教程,看教程秒懂刷机
- #1.从学生表中查询所有学生的所有信息SELECT * FROM `student`#2.从学生表查询所有学生的学号姓名信息并分别赋予别名SELECT StudentNo AS ‘学号‘, St