首页 > 其他分享 >最短路

最短路

时间:2023-03-14 12:58:07浏览次数:35  
标签:NO int 短路 路径 单源 带权

#include<bits/stdc++.h>
using namespace std;
int g[205][205];
int main(){
    memset(g,0x3f,sizeof g);
    int n,m,k;cin>>n>>m>>k;
    while(m--){
        int x,y,z;cin>>x>>y>>z;
        g[x][y]=z;
    }
    
    //最短路径的处理,floyd 佛洛依德最短路办法
    for(int p=1;p<=n;p++){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                g[i][j]=min(g[i][p]+g[p][j],g[i][j]);
            }
        } 
    }
    while(k--){
        int x,y;cin>>x>>y;
        if(g[x][y]==0x3f3f3f3f) cout<<"impossible"<<endl;
        else cout<<g[x][y]<<endl; 
    }
    return 0;
}
 
View Code

 最短路的概念

在一个图中有 n个点、m条边。边有权值,权值可正可负。边可能是有向的,也可能是无向的。

给定两个点,起点是s,终点是t,在所有能连接s和t的路径中寻找边的权值之“和” 最小的路径,这就是最短路径问题

最短路常包含两种:

单源最短路:从单个节点出发,到所有节点的最短路
多源最短路:整个图中所有点到其他点的最短路

 

对于无权图:

一次BFS可求得最短路

对于有权图:

算法/对比 主要使用方向 时间复杂度 处理负边权 处理负权回路
Floyd 带权图的多源最短路径 O(m3) YES NO
SPFA 带权图的单源最短路径 O(n*logn) YES YES
dijkstra 带权图的单源最短路径 最坏O(n*m) NO NO

标签:NO,int,短路,路径,单源,带权
From: https://www.cnblogs.com/char7/p/17214522.html

相关文章

  • 最短路计数
    /*边权值都为1,所以可以用BFS来做记住BFS和dikstra都是满足拓扑序性质的,也就是说可以用二者解决图论中的dp问题,而spfa不满足拓扑序的性质*/#include<bits/st......
  • AcWing 第 94 场周赛 A B(最短路dij) C(最短路floyed)
    https://www.acwing.com/activity/content/competition/problem_list/2961/AcWing4870.装物品水题#include<bits/stdc++.h>usingnamespacestd;typedeflonglon......
  • 最短路之和
    最短路之和给定一个$n$个点的加权有向图,点的编号为$1\simn$。图中任意两点之间都有两条方向相反的边连接两点。从点$i$到点$j$的边的长度为$a_{ij}$。给定一......
  • 最短路径算法
    原理1.算出目前数据中,起点到终点的最短路径2.路径从短到长获取目前最短的路径,设置标识,有标识的不参与下一步循环 packagecom.jason.base.arithmetic;importlom......
  • dijkstra 建立虚拟源点求最短路
    题目:有N个村庄,编号1到N。村庄之间有M条无向道路,第i条道路连接村庄ai和村庄bi,长度是ci。所有村庄都是连通的。共有K个村庄有商店,第j个有商店的村庄编......
  • 最短路
    概述最短路算法主要研究图上两点之间的最短路径问题。事实上,许多问题都能转化为图来求解(图的本质就是点和边的集合,点是元素,边是元素之间的二元关系)。所以最短路算......
  • 最短路问题
    最短路问题图论中求某点到某点最短的路径长度。图中点1到点4的最短路径长度应为3.分类最短路问题分为两类:单源最短路和多源最短路。前者只需要求一个固定的起点到各个......
  • Johnson 全源最短路 学习笔记
    我居然不会这玩意,过来学一下。算法简介Johnson全源最短路用于求一个带负权的图的任意两点之间的最短路,时间复杂度为\(\Theta(nm\logm)\)。算法流程考虑到\(n\)次......
  • hihoCoder 1081 : 最短路径·一
    #1081:最短路径·一10000ms1000ms256MB描述万圣节的早上,小Hi和小Ho在经历了一个小时的争论后,终于决定了如何度过这样有意义的一天——他们决定去闯鬼屋!在鬼屋门......
  • hihoCoder 1089 : 最短路径·二:Floyd算法
    #1089:最短路径·二:Floyd算法10000ms1000ms256MB描述万圣节的中午,小Hi和小Ho在吃过中饭之后,来到了一个新的鬼屋!鬼屋中一共有N个地点,分别编号为1..N,这N个地点之......