hdu2544及spfa模板

来源:互联网 发布:sysbench for mysql 编辑:程序博客网 时间:2024/05/20 22:36

直接po代码:

#include<iostream>#include<cstdio>#include<queue>#include<vector>#include<cstring>#include<string>#define rep(i,n)    for (int i=1;i<=n;i++)using namespace std;struct P{    int v,w;};vector<P> map[150];int n,m;int dis[150]={0};int main(){    while (1){        scanf("%d%d",&n,&m);        rep(i,n)    map[i].clear();        if (n==0&&m==0)            break;        memset(dis,0x3f,sizeof dis);        rep(i,m){            int u,v,w;            scanf("%d%d%d",&u,&v,&w);            P cur;            cur.v=v,cur.w=w;            map[u].push_back(cur);            cur.v=u;            map[v].push_back(cur);        }        dis[1]=0;        queue<int>    q;        q.push(1);        bool vis[150]={false};        vis[1]=true;        while (!q.empty()){            int s=q.front();            q.pop();            rep(i,map[s].size())    if (dis[s]+map[s][i-1].w<dis[map[s][i-1].v]){                dis[map[s][i-1].v]=dis[s]+map[s][i-1].w;                if (!vis[map[s][i-1].v]){                    vis[map[s][i-1].v]=true;                    q.push(map[s][i-1].v);                }            }            vis[s]=false;        }        printf("%d\n",dis[n]);    }    return 0;}


0 0
原创粉丝点击