Floyed
for(int i=1;i<=e;i++){
a=read();b=read();w=read();
dis[a][b]=dis[b][a]=min(dis[a][b],w);
}for(int i=1;i<=v;++i) dis[i][i]=0;
for(int l=1;l<=v;l++)
for(int i=1;i<=v;i++)
for(int j=1;j<=v;j++)
dis[j][i]=min(dis[i][j],dis[i][l]+dis[l][j]);
Dijkstra
void dij(int x)
{
priority_queue< pair <int,int> >q;
memset(dis,0x3f,sizeof(dis));dis[x]=0;
q.push(make_pair(0,x));
while(q.size()){
int g=q.top().second;q.pop();
for(int i=head[g];i;i=e[i].next){
int to=e[i].t;
if(dis[g]+e[i].w>dis[to]){
dis[to]=dis[g]+e[i].w;
q.push(make_pair(dis[to],to));
}
}
}
}
Spfa
void spfa(int x)
{
queue<int>q;
memset(fl,0,sizeof(fl));
memset(dis,1,sizeof(dis));//cout<<dis[0]<<endl;
dis[x]=0;fl[x]=1;q.push(x);
while(q.size()){
int d=q.front();
fl[d]=0;
q.pop();
for(int i=1;i<=num[d];i++)
if(e[d][w[d][i]]>0&&dis[d]+e[d][w[d][i]]<dis[w[d][i]]){
dis[w[d][i]]=dis[d]+e[d][w[d][i]];
if(!fl[w[d][i]]) {q.push(w[d][i]);fl[w[d][i]]=1;}
}
}
}