最短路SPFA模板,注意雙向邊,因此e開兩倍。 node
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #include<queue> using namespace std; int n,m,num,u,v,w; int head[200002],dis[200002]; bool vis[200002]; queue<int>q; struct node{ int u,v,w,nxt; }e[400004]; void add(int u,int v,int w) { num++; e[num].v =v; e[num].w =w; e[num].nxt =head[u]; head[u]=num; } void spfa() { memset(dis,0x3f,sizeof(dis)); dis[1]=0;vis[1]=1; int u,v; q.push(1); while(!q.empty()) { u=q.front(); q.pop(); vis[u]=0; for(int i=head[u];i;i=e[i].nxt ) { v=e[i].v ; if(dis[v]>dis[u]+e[i].w ) { dis[v]=dis[u]+e[i].w ; if(!vis[v]) { vis[v]=1; q.push(v); } } } } } int main() { scanf("%d%d",&n,&m); for(int i=1;i<=m;++i) { scanf("%d%d%d",&u,&v,&w); add(u,v,w); add(v,u,w); } spfa(); printf("%d",dis[n]); return 0; }
若是你不開心,那我就把右邊這個帥傻子分享給你吧, ios
你看,他這麼好看,那麼深情的望着你,你還傷心嗎? spa
真的!這照片盯上他五秒鐘就想笑了。 blog
一切都會過去的。 string