标签:
最短路模板 dij 和 spfa 都可以
spfa:
#include<stdio.h>
#include<string.h>
#include<cstring>
#include<string>
#include<math.h>
#include<queue>
#include<algorithm>
#include<iostream>
#include<stdlib.h>
#include<cmath>
#define INF 0x3f3f3f3f
#define MAX 4*100105
using namespace std;
struct node
{
int u,v,len,next;
}Map[MAX];
int n,m,vis[MAX],dist[MAX],k,a[MAX];
void Add(int u,int v,int len)
{
Map[k].u=u;
Map[k].v=v;
Map[k].len=len;
Map[k].next=a[u];
a[u]=k++;
}
void Init()
{
k=1;
memset(vis,0,sizeof(vis));
for(int i=0;i<MAX;i++)
{
dist[i]=INF;
a[i]=-1;
}
}
int spfa()
{
queue<int>Q;
int start=1,k;
dist[1]=0;
vis[1]=1;
Q.push(start);
while(!Q.empty())
{
start=Q.front();
Q.pop();
vis[start]=0;
for(k=a[start];k!=-1;k=Map[k].next)
{
int v=Map[k].v;
if(dist[v] > dist[start]+Map[k].len)
{
dist[v]=dist[start]+Map[k].len;
if(!vis[v])
{
vis[v]=1;
Q.push(v);
}
}
}
}
return 1;
}
int main()
{
int i,j,u,v,len;
while(scanf("%d%d",&m,&n)!=EOF)
{
Init();
for(i=1;i<=m;i++)
{
scanf