全WA了,求调
查看原帖
全WA了,求调
1368897
1qaz0plk楼主2024/10/19 08:59
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll N=1e6+55,M=1e6+55;
ll head[N],tu[N];	
ll n,m;
ll x,y,w,s;
ll val[N];
struct s
{
	ll to,next,w,from;
}edge[M];
ll cnt=0;
void init()
{
	for(ll i=1;i<=N;i++)head[i]=-1;
	for(ll i=1;i<=M;i++)edge[i].next=-1;
	cnt=0;
}
void add(ll x,ll y,ll w)
{
	edge[cnt].to=y;
	edge[cnt].from=x;
	edge[cnt].next=head[x];
	edge[cnt].w=w;
	head[x]=cnt++;
}
vector<ll>q;
int main()
{
	cin>>n>>m>>s;
    for(ll i=1;i<=n;i++)val[i]=2147483647;
	init();
	val[s]=0;
	for(ll i=1;i<=m;i++)
	{
		cin>>x>>y>>w;
		add(x,y,w);
	}
	q.push_back(s);
	while(!q.empty())
	{
		ll a=q.front();
		q.erase(q.begin());
		for(ll i=head[a];~i;i=edge[i].next)
		{
			val[edge[i].to]=min(val[edge[i].from]+edge[i].w,val[edge[i].to]);
			if(tu[edge[i].to]==0)
			{
				q.push_back(edge[i].to);
				tu[edge[i].to]=1;
			}
		}
	}
	for(ll i=1;i<=n;i++) printf("%lld ",val[i]);
	return 0;
}
2024/10/19 08:59
加载中...