求问编译错误
  • 板块灌水区
  • 楼主donk_666
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/11/19 16:08
  • 上次更新2024/11/19 18:35:19
查看原帖
求问编译错误
475219
donk_666楼主2024/11/19 16:08

简单diji 但会CE

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define mp make_pair
#define pb push_back
int n,m,s;
vector<pair<int,int> >g[100005];
struct node{
    int num,val;
    bool operator<(const node gg){
        return  gg.val<val;
    }
};
int d[100005],vis[100005];
priority_queue<node>q;
void diji(){
    memset(d,0x7f7f,sizeof(d));
    d[s]=0;vis[s]=1;q.push(node{s,0});
    while(q.size()!=0){
        node x=q.top();q.pop();
        if(vis[x.num]==1){
            continue;
        }
        vis[x.num]=1;
        for(int i=0;i<g[x.num].size();i++){
            int y=g[x.num][i].first,value=g[x.num][i].second;
            if(d[y]>d[x.num]+value){
                d[y]=d[x.num]+value;
                if(vis[y]==0){
                    vis[y]=1;
                    q.push(node{y,d[y]});
                }
            }
        }
    }
}
signed main(){
    cin>>n>>m>>s;
    for(int i=1;i<=m;i++){
        int uu,vv,ww;cin>>uu>>vv>>ww;
        g[uu].pb(mp(vv,ww));
    }
    diji();
    for(int i=1;i<=n;i++){
        cout<<d[i]<<" ";
    }
}
2024/11/19 16:08
加载中...