spfa
#include<iostream> #include<stdio.h> #include<queue> using namespace std; const int maxx = 105; const int INF = 99999999; int map[maxx][maxx],dist[maxx]; bool visit[maxx]; int n;//路径数 void sofa(int a) { int i,now; memset(visit,false,sizeof(visit)); for(int i=1;i<=n;i++) dist[i]=INF; dist[a]=0; queue<int>Q; Q.push(a); visit[a]=true; while(!Q.empty()) { now=Q.front(); Q.pop(); visit[now]=true; for(int i=1;i<=n;i++) { if(dist[i]>dist[now]+map[now][i]) { dist[i]=dist[now]+map[now][i]; if(visit[i]==false) { Q.push(i); visit[i]=true; } } } } } int main() { }