P2299 Mzc和体委的争夺战
最短路SPFA模板,注意双向边,所以e开两倍。
#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; }
如果你不开心,那我就把右边这个帅傻子分享给你吧,
你看,他这么好看,那么深情的望着你,你还伤心吗?
真的!这照片盯上他五秒钟就想笑了。
一切都会过去的。