1382:最短路(Spfa)
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
给定 M 条边, N 个点的带权无向图。求 1到 N 的最短路。
【输入】
第一行:N,M(N<=100000,M<=500000);
接下来M行3个正整数:ai,bi,ci表示ai,bi之间有一条长度为ci的路,ci<=1000。
【输出】
一个整数,表示 1 到 N 的最短距离。
【输入样例】
4 4
1 2 1
2 3 1
3 4 1
2 4 1
【输出样例】
2
【提示】
【样例解释】
注意图中可能有重边和自环,数据保证 1 到 N 有路径相连。
//示例代码 SPAF
#include <bits/stdc++.h>
using namespace std;
const int N=100005;
const int oo=2139062143;
int num,nex[10*N],to[10*N],w[10*N],head[N];
bool sign[N];//标记
int dis[N];//距离
int n,m;
void add(int a,int b,int c){//邻接表存储
nex[num]=head[a];
to[num]&