1. 程式人生 > >bzoj 3408 熱浪 最短路

bzoj 3408 熱浪 最短路

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 熱浪 最短路