floyed-多源汇聚最短路

  1. 时间复杂度O(n^3)
  2. 动态规划
  3. dkij = min(dk-1ij,dk-1ik + dk-1kj)
  4. 可以简化为
  5. d[i][j] = min(d[i][j], d[i][k] + d[j][k]) //考虑经过k点时的最短路

代码

cpp 复制代码
#include<iostream>
#include<algorithm>
#include<cstdio>

using namespace std;

const int N = 210;

int g[N][N];

int n;

void floyed(){
    
    for(int k = 1; k <= n; k++){
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= n; j++){
                g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
            }
        }
    }
    
}
int main(){
    int m,k;
    cin>>n>>m>>k;
    
    int x, y, z;
    
    //考虑重边和自环
    
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= n; j++){
            if(i == j){
                g[i][j] = 0; //去掉环 
            }else g[i][j] = 0x3f3f3f3f;
        }
    }
    
    for(int i = 0; i < m; i++){
        cin>>x>>y>>z;
        g[x][y] = min(g[x][y],z);
        
    }
    int a, b;
    int ans;
    
    floyed();
    for(int i = 0; i < k; i++){
        cin>>a>>b;
        if(g[a][b] > 0x3f3f3f3f/2){
            cout<<"impossible" << '\n';
        }else cout<< g[a][b]<< '\n';
        
    }
    
    
    
    return 0;
}
相关推荐
Jerry14 小时前
LeetCode 101. 对称二叉树
算法
可编程芯片开发15 小时前
基于MPPT最大功率跟踪的离网光伏发电系统Simulink建模与仿真
算法
AI科技星16 小时前
线性算子不是空间映射函数,是全域双螺旋场之间拉伸、旋转、耦合、坍缩的跨空间标准化变换载体《全域数学vs传统数学:人类文明进阶200讲》第80讲
线性代数·算法·矩阵·数据挖掘·回归·乖乖数学·全域数学
米罗篮16 小时前
矩阵快速幂 (Exponentiation By Squaring Applied To Matrices)
c++·线性代数·算法·矩阵
dream_home840716 小时前
图像算法模型NPU适配与算法服务实战指南
人工智能·python·算法·npu 图像服务
大鱼>17 小时前
多宠物家庭智能管理平台:云端架构与多设备协同实战
python·算法·iot·宠物
To_OC17 小时前
LC 22 括号生成:刷完这道题,我终于搞懂回溯剪枝了
javascript·算法·leetcode
To_OC17 小时前
LC 39 组合总和:回溯入门必刷题,我踩过的两个坑都在这了
javascript·算法·leetcode
数字杂技师17 小时前
每条推荐都很准,为什么我还是越刷越无聊?
算法
兰令水17 小时前
hot100【acm版】【2026.7.14打卡-java版本】
java·数据结构·算法·leetcode·面试