SPFA,WA第三个点
查看原帖
SPFA,WA第三个点
81674
雨之弓楼主2022/7/31 11:02
#include<bits/stdc++.h>
using namespace std;
int n, m, s, ans[10005], mrk[10005];
struct Node
{
    int t, v;
};
vector<Node>r[10005];
queue<int>stl;
int main()
{
    memset(ans,0x7f7f7f,sizeof(ans));
    cin>>n>>m>>s;
    for(int i=1;i<=m;i++)
    {
        int a, b, c;
        cin>>a>>b>>c;
        Node t;
        t.t=b;
        t.v=c;
        r[a].push_back(t);
    }
    stl.push(s);
    ans[s]=0;
    while(!stl.empty())
    {
        int p=stl.front();
        stl.pop();
        mrk[p]=0;
//            cout<<p<<" "<<r[p].size()<<"\n";
        for(int i=0;i<r[p].size();i++)
        {
            int t=r[p][i].t, v=r[p][i].v;
            if(ans[t]>ans[p]+v)
            {
                ans[t]=ans[p]+v;
                if(mrk[t]==0)
                {
                    mrk[t]=1;
                    stl.push(t);
                }
            }
        }
    }
    for(int i=1;i<=n;i++)
        cout<<ans[i]<<" ";
    return 0;
}
2022/7/31 11:02
加载中...