关于模板题分卡在90这件事
查看原帖
关于模板题分卡在90这件事
809845
caohongyi楼主2023/6/21 17:38

wrong answer

跪求

#include<bits/stdc++.h>
using namespace std;
int n,m,s,q[1000001],dis[10001],used[10001],hd[10001],nxt[500001],zd[500001],val[500001],cnt=0,f,e;
bool inq[10001];
void addedge(int a,int b,int c)
{
    cnt++;
    zd[cnt]=b,val[cnt]=c,nxt[cnt]=hd[a];
    hd[a]=cnt;
}
int main()
{
    cin>>n>>m>>s;
    for(int i=1;i<=m;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        addedge(a,b,c);
    }
    memset(dis,-1,sizeof(dis));
    dis[s]=0,inq[s]=1,q[1]=s,f=1,e=1;
    while(f<=e)
    {
        int u=q[f++];
        for(int p=hd[u];p!=0;p=nxt[p])
        {
            int v=zd[p];
            if(dis[v]==-1||dis[v]>dis[u]+val[p])
            {
                dis[v]=dis[u]+val[p];
                if(inq[v]==0) q[++e]=v,inq[v]=1;
            }
        }
        inq[u]=0;
    }
    int x=(1<<32)-1;
    for(int i=1;i<=n;i++)
        if(dis[i]==-1) printf("%d ",x);
        else printf("%d ",dis[i]);
}

用数学老师的一句话结束发言:我真差劲

2023/6/21 17:38
加载中...