#include<iostream>
#include<string>
#include<map>
using namespace std;
const int maxx=1010;
const int inf=0x3f3f3f3f;
int g[maxx][maxx],d[maxx],n,k;
bool vis[maxx];
void dijkstra(int x){
fill(d,d+maxx,inf);
fill(vis,vis+maxx,false);
d[x]=0;
for(int i=1;i<=n;i++){
int u=-1,minn=inf;
for(int j=1;j<=n;j++){
if(d[j]<minn&&vis[j]==false){
u=j;
minn=d[j];
}
}
if(u==-1) break;
vis[u]=true;
for(int j=1;j<=n;j++){
if(vis[j]==false&&g[u][j]!=inf&&d[j]>d[u]+g[u][j])
d[j]=d[u]+g[u][j];
}
}
}
dijkstra模板矩阵存法
最新推荐文章于 2023-09-03 11:01:10 发布