我不明白为什么洛谷上会编译错误
查看原帖
我不明白为什么洛谷上会编译错误
365777
halehu楼主2022/3/31 21:59
#include<iostream>
#include<queue>
#define ll long long
using namespace std;
int mod=100003;
ll maxn=1e10;
ll n,m,j,i,a,b,tot=1,head[100005],d[100005],vis[100005],sum[100005];
struct node{
	ll to,nxt;
}e[200005];
void add(ll u,ll v){
	e[tot].to=v;
	e[tot].nxt=head[u];
	head[u]=tot++;
}
void SPFA()
{
	queue<ll>s;
	s.push(1);
	d[1]=0;
	vis[1]=1;
	sum[1]=1;
	while(!s.empty()){
		ll x=s.front();
		s.pop();
		for(ll k=head[x];k!=-1;k=e[k].nxt){
			ll tmp=e[k].to;
			if(!vis[tmp]){
				vis[tmp]=1;
				s.push(tmp);
				d[tmp]=d[x]+1;
				sum[tmp]=sum[x];
			}
			else
				if(d[tmp]==d[x]+1){
					sum[tmp]+=sum[x];
					sum[tmp]%=mod;
				}
		}
	}
}
int main()
{
	cin>>n>>m;
	for(i=1;i<=n;i++)
	    head[i]=-1;
	for(i=1;i<=m;i++){
		cin>>a>>b;
		add(a,b);
		add(b,a);
	}
	for(i=1;i<=n;i++)d[i]=maxn;
	SPFA();
	for(i=1;i<=n;i++)
	    cout<<sum[i]<<endl;
}

记录记录

2022/3/31 21:59
加载中...