HdU 2544 最短路

来源:互联网 发布:如何利用月经减肥 知乎 编辑:程序博客网 时间:2024/04/27 18:45

明天更新spfa。。。

下面是djstl

#include<cstdio>#include<cstring>#include<iostream>#include<queue>#include<vector>#include<string>using namespace std;struct sb{    int x;    int t;    sb(int a,int b)    {        x=a;        t=b;    }    bool operator<(const sb&wakaka)const    {        return t>wakaka.t;    }};vector<sb>bian[10010];int n;int ts[10010];int vis[10010];void djstl(int who){    for(int i=1;i<=n;i++)    {        ts[i]=0x3f3f3f3f;        vis[i]=0;    }    ts[who]=0;    priority_queue<sb>q;    q.push(sb(who,ts[who]));    while(!q.empty())    {        sb x=q.top();        q.pop();        if(vis[x.x])        {            continue;        }        vis[x.x]=1;        for(int i=0;i<bian[x.x].size();i++)        {            sb y=bian[x.x][i];            if(ts[y.x]>x.t+y.t)            {                ts[y.x]=x.t+y.t;                q.push(sb(y.x,ts[y.x]));            }        }    }}int  main(){    int m;    while(cin>>n>>m)    {        if(n==0&&m==0)            break;        int a,b,t;        for(int i=1;i<=m;i++)        {            cin>>a>>b>>t;            bian[b].push_back(sb(a,t));            bian[a].push_back(sb(b,t));        }        djstl(1);        for(int i=1;i<=n;i++)        {            bian[i].clear();        }        cout<<ts[n]<<endl;    }    return 0;}
0 0
原创粉丝点击