【洛谷1339 [USACO09OCT]】热浪Heat Wave 图论+最短路
2018-10-02 15:33
615 查看
AC代码
#include<bits/stdc++.h> using namespace std; const int MAXN=62000+10,INF=999999; struct Edge{ int u,v,w,next; }edge[MAXN]; int head[MAXN],n,m,s,t,dist[MAXN],cnt; bool vis[MAXN]; void addedge(int x,int y,int z){ edge[cnt].u=x; edge[cnt].v=y; edge[cnt].w=z; edge[cnt].next=head[x]; head[x]=cnt++; } void spfa(){ queue<int>q; for(int i=1;i<=n;i++){ dist[i]=INF; vis[i]=false; } dist[s]=0; vis[s]=true; q.push(s); while(!q.empty()){ int k=q.front(); q.pop(); vis[k]=false; for(int i=head[k];i!=-1;i=edge[i].next){ int to=edge[i].v; if(dist[to]==INF||dist[to]>dist[k]+edge[i].w){ dist[to]=dist[k]+edge[i].w; if(vis[to]==false){ vis[to]=true; q.push(to); } } } } } int main() { memset(head,-1,sizeof(head)); scanf("%d%d%d%d",&n,&m,&s,&t); for(int i=1;i<=m;i++){ int a,b,c; scanf("%d%d%d",&a,&b,&c); addedge(a,b,c);addedge(b,a,c); } spfa(); printf("%d",dist[t]); return 0; }
相关文章推荐
- 洛谷 1339 [USACO09OCT]热浪Heat Wave 最短路
- [USACO09OCT]热浪Heat Wave 洛谷 1339 最短路
- SPFA基础模板 (洛谷1339 [USACO09OCT]热浪Heat Wave)
- 【洛谷1339】[USACO09OCT]热浪Heat Wave spfa
- 洛谷 1339_[USACO09OCT]热浪Heat Wave_Dijkstra
- 【洛谷1339】[USACO09OCT]热浪Heat Wave
- 洛谷P1339 [USACO09OCT]热浪Heat Wave(最短路)
- luogu P1339 [USACO09OCT]热浪Heat Wave
- 【洛谷 1339】【USACO 09 OCT】热浪 Heat Wave
- 洛谷1339 热浪(最短路模板)
- Dijkstra算法模版 洛谷P1339 [USACO09OCT]热浪Heat Wave
- 洛谷 P1339 [USACO09OCT] 热浪Heat Wave
- 洛谷1339 热浪(最短路模板)
- 洛谷 P1339 [USACO09OCT]热浪Heat Wave(用Dij)
- 洛谷1339 热浪 最短路
- 洛谷 P1339 [USACO09OCT]热浪Heat Wave
- bzoj 3386 && bzoj 3408: [Usaco2009 Oct]Heat Wave 热浪(最短路)
- 洛谷 P1339 [USACO09OCT]热浪Heat Wave
- 洛谷 1339 热浪
- 洛谷 1339 最短路