bzoj 3408 熱浪 最短路
阿新 • • 發佈:2017-10-08
pty spa ems mem dijkstra using jks () ins
一道最短路的模板題,就當練習一下SPFA和dijkstra了
SPFA
#include<bits/stdc++.h> using namespace std; struct edge{ int next,to,w; }e[13000]; int n,m,cnt,s,l; int head[2505],dis[2505]; bool vis[2505]; void insert(int u,int v,int k){ cnt++; e[cnt].next=head[u];e[cnt].to=v;e[cnt].w=k; head[u]=cnt; }int main(){ scanf("%d%d%d%d",&n,&m,&s,&l); int x,y,k; for(int i=1;i<=m;i++){ scanf("%d%d%d",&x,&y,&k); insert(x,y,k);insert(y,x,k); } queue<int> q; memset(dis,127,sizeof dis); dis[s]=0;vis[s]=1; q.push(s);while(!q.empty()){ int now=q.front();vis[now]=0; q.pop(); for(int i=head[now];i;i=e[i].next){ x=e[i].to; if(dis[x]>dis[now]+e[i].w){ dis[x]=dis[now]+e[i].w; if(!vis[x]){ vis[x]=1; q.push(x); } } } } printf("%d",dis[l]); return 0; }
bzoj 3408 熱浪 最短路