博客:
https://blog.csdn.net/qq_37796444/article/details/80663810
洛谷:
https://www.luogu.com.cn/problem/P3371
代码:
#include <iostream>
#include <cstdio>
using namespace std;
int INF=2147483647;
int n,m,s,u,v,w,num;
int head[10010];
int val[500500];
int dis[500500];
bool vis[10010];
struct Node
{
int to,nxt,val;//to:边的起点,nxt:边的终点,val:权值
}city[500500];
void add_edge(int x,int y,int value)//增加边
{
city[++num].to=y;//开始的终点
city[num].nxt=head[x];//边的起点
city[num].val = value;//权值
head[x]=num;//起点在改变
}
int main()
{
scanf("%d%d%d",&n,&m,&s);
for(int i=0; i<=n; i++)
dis[i]=INF;//权值开始都为无穷大
> 这里是引用
for(int i=1; i<=m; i++)
{
sca