dij+堆优化,一直re啊,呜呜呜
查看原帖
dij+堆优化,一直re啊,呜呜呜
329795
limate楼主2020/4/29 09:12
#include <bits/stdc++.h>
#define love ios::sync_with_stdio(false);
#define inf 0x7fffffff
#define INF 0x7fffffffffffffff
typedef long long ll;
const double PI=3.1415926535897931;
//const long long mod=1e9+7;
using namespace std;
//////////////////////////////////////////////
const int maxn=1e4+10;

vector<pair<int,int> >E[maxn];
int n,m,s;
int d[maxn];
int vis[maxn];
int main()
{
    cin>>n>>m>>s;
    for(int i=1; i<=maxn; i++)
        d[i]=inf;
    int x,y,z;
    for(int i=0; i<m; i++)
    {
        cin>>x>>y>>z;
        E[x].push_back(make_pair(y,z));
    }
    priority_queue<pair<int,int> >Q;
    d[s]=0;
    Q.push(make_pair(0,s));
    while(!Q.empty())
    {
        int now=Q.top().second;
        Q.pop();
        if(vis[now])
            continue;
        vis[now]=1;
        for(int i=0; i<E[now].size(); i++)
        {
            int v=E[now][i].first;
            if(d[v]>d[now]+E[now][i].second)
            {
                d[v]=d[now]+E[now][i].second;
                Q.push(make_pair(-d[v],v));
            }
        }
    }
    for(int i=1; i<=n; i++)
    {
        i==n?cout<<d[i]<<endl:cout<<d[i]<<" ";
    }
    return 0;
}


2020/4/29 09:12
加载中...