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求最短路相关推荐

  1. Floyd AcWing 854. Floyd求最短路

    Floyd AcWing 854. Floyd求最短路 原题链接 AcWing 854. Floyd求最短路 算法标签 最短路 Floyd 思路 代码 #include<bits/stdc++. ...

  2. AcWing 854. Floyd求最短路(模板)

    题目链接 https://www.acwing.com/problem/content/856/ 思路 我们用d[k][i][j]来表示经过前k个点中,或者说以前k个点作为中转更新从i到j最短路,那么 ...

  3. ZOJ 2760 How Many Shortest Path 最大流+floyd求最短路

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2760 题意: 给出一张有向带边权图,若不联通为-1.问不重叠的最 ...

  4. POJ - 2112 Optimal Milking(二分+二分图最大匹配-多重匹配(修改匈牙利实现)+Floyd求最短路)

    题目链接:点击查看 题目大意:给出n个牛奶机器,再给出m只奶牛,每个机器只能让最多k只牛一起挤奶,现在问如何分配奶牛,能让最远的那只奶牛到达机器的距离最小 题目分析:很综合的一道题目了,不算很难,但比 ...

  5. 【图论】C059_AW_GF和猫咪的玩具 分糖果(floyd求最短路中的最长路 | 最后一个小朋友吃完的时间)

    一.GF和猫咪的玩具 GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为1-n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同. GF左手拿起金属环L,猫咪右手(或者说:爪 ...

  6. Floyd算法求最短路

    Floyd算法(基于动态规划):用于求多源汇最短路 初始化:用邻接矩阵d[i,j]存储中所有的边,floyd算法就是三重循环 for(k = 1;k <= n;k ++){ for(i = 1; ...

  7. 多源最短路径Floyd、Floyd求最小环【模板】

    Floyd算法:用来找出每对点之间的最短距离.图可以是无向图,也可以是有向图,边权可为正,也可以为负,唯一要求是不能有负环.  1.初始化:将Map[][]中的数据复制到Dist[][]中作为每对顶点 ...

  8. 算法提高课-图论-单源最短路的建图方式-AcWing 920. 最优乘车:bfs求最短路、建图

    题目分析 来源:acwing 分析: 本题难在抽象建图上,这里采用的建图方式是:同一条公交线路上,前面的站点都可以连一条有向边到其后面的站点,且边权都为1. 由于边权都是1,可以用bfs来求最短路. ...

  9. AcWing 845. 八数码(3阶数字华容道):bfs求最短路,状态表示困难

    文章目录 题目 题目分析 题目 题目链接:AcWing 845. 八数码(数字华容道) 在一个3×3的网格中,1~8这8个数字和一个"x"恰好不重不漏地分布在这3×3的网格中. 例 ...

最新文章

  1. 【怎样写代码】参数化类型 -- 泛型(四):泛型之类型参数约束
  2. [LAMP]Apache和PHP的结合
  3. .net erp(办公oa)开发平台架构概要说明之表单设计器
  4. python configparser 注释_使用configpar添加注释
  5. Linux中cinder的作用,cinder
  6. 鼠标屏幕取词技术的原理和实现 (转)
  7. 内网通积分|免广告工具
  8. Wunderlist – 免费同步 Todo List
  9. U盘加密软件测试自学,利用联想USB接口加密软件给你的U盘加密、设定访问权限...
  10. 算法设计与分析 SCAU11083 旅游背包(优先做)
  11. 库克谈人工智能:增长飞快 兼具颠覆性和创造性
  12. java怎么给文件加密_java中如何给文件加密
  13. FREERTOS打印错误prvTaskExitError,找原因是如下:
  14. 什么是南向接口和北向接口,南北流量和东西流量
  15. 不足100克按100克C语言,C语言_第3章.ppt
  16. TCP原理之:linux网桥
  17. 公安专网与视频专网内使用离线互联网百度高德地图
  18. java 如何将base64 转成图片并保存,返回地址入库
  19. ABAP inner join 性能影响
  20. 智能汽车操作系统哪家强?黑莓QNX领跑,中兴/华为撑起中国方案

热门文章

  1. Shell脚本中dirname命令的使用
  2. 谈笑间学会数仓—主题域数据域
  3. HTML(常用标签与超链接)的案例
  4. SOLIDWORKS提供的“走查”功能,身临其境感受自己的设计 | 操作视频
  5. 拯救者15isk加装固态硬盘
  6. 查找代码文件中的非 ASCII 字符
  7. 雷电html查看程序编辑程序,雷电模拟器应用操作
  8. 我们公司财务不接受电子发票纸质打印报销,这合理吗?
  9. 联想android刷机教程,联想Z5 Pro(安卓9.0)一键刷机教程,看教程秒懂刷机
  10. #1.从学生表中查询所有学生的所有信息SELECT * FROM `student`#2.从学生表查询所有学生的学号姓名信息并分别赋予别名SELECT StudentNo AS ‘学号‘, St