最短路我调了半天啊我的建图

是泡泡 每日一题总教官
云计算领域优质创作者
2022-08-15 00:30:36
#include<bits/stdc++.h>
using namespace std;
const int N = 500005;
const int inf=INT_MAX;
typedef long long ll;
typedef pair<int,int> PII;
int h[N],e[N],ne[N],w[N];
ll dist[N]; 
bool st[N];
int n,m,s,idx;
priority_queue<PII,vector<PII >,greater<pair<int,int> > >q;
void add(int x, int y, int c)
{
    e[++idx] = y;
    w[idx] = c;
    ne[idx] = h[x];
    h[x] = idx;
}
int main()
{
    cin>>n>>m>>s;
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        cin>>a>>b>>c;
        add(a,b,c); 
    }
    for(int i=1;i<=n;i++)
        dist[i]=inf;
    dist[s]=0; 
    q.push({0,s});
    while(q.size())
    {
        auto t = q.top();
        int x=t.second,y=t.first;
        q.pop();
        if(st[x]) continue;
        st[x]=1;
        for(int i=h[x];i;i=ne[i])
        {
            int j = e[i];
            if(dist[j]>y+w[i])
            {
                dist[j]=y+w[i];
                q.push({dist[j],j});
            }
        }
    }
    for(int i=1;i<=n;i++)
        cout<<dist[i]<<" "; 
    return 0;
}

 

...全文
22 回复 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
高校算法学习社区

2.6w+

社区成员

和众多高校算法内卷分子,一起学习和交流算法那。浓郁的算法交流氛围,拒绝躺平,有效内卷。加入我们,私信我拉你入核心内卷群。
算法数据结构leetcode 个人社区
社区管理员
  • 执 梗
  • Dream-Y.ocean
  • ღCauchyོꦿ࿐
加入社区
帖子事件
创建了帖子
2022-08-15 00:30
社区公告

为了充分激发大家的创作热情和发文贡献,这里规定了高效算法学习社区对于积分榜的贡献排行榜的奖措施:

总榜奖励:(截止于2023年4月1日)

1.总榜第一:现金三百元

2.总榜第二与第三:Acwing算法课一套(价值150元可提现)

月榜:(从2020.年4月1日开始,每月一号结算)

1.月榜前三:请喝奶茶一杯

更多详细可看下:https://docs.qq.com/doc/DVnZJbkFPc1BNU2x2