求助各位大佬,本蒟蒻是用bfs写的,样例过了然而测试点全WA了,不知道问题出在哪儿
#include<bits/stdc++.h>
using namespace std;
#define N 1234567
#define M 2234567
int n,m,x,y,step[N],ans[N],head[N],now,s,cnt,vis[N];
#define mod 100003
struct edge{
int to,next;
}e[M];
void add(int x,int y){
e[++cnt].to=y;
e[cnt].next=head[x];
head[x]=cnt;
}
void bfs(){
memset(ans,0,sizeof(ans));
memset(step,0x3f,sizeof(step));
queue<int>q;
q.push(1);
ans[1]=1;step[1]=0;
while(!q.empty()){
int x=q.front();q.pop();
if(vis[x])continue;
vis[x]=1;
for(int i=head[x];i;i=e[i].next){
int y=e[i].to;
q.push(y);
if(!ans[y]) {
ans[y]=ans[x];
step[y]=step[x]+1;
}
else{
if(step[y]<step[x]+1)
continue;//说明有更短的路径,当前路径已经不是最短路了
else if(step[y]==step[x]+1)
ans[y]=(ans[y]+ans[x])%mod;// 说明有相同的最短路,加和
else {
ans[y]=ans[x];
step[y]=step[x]+1;//说明有更短的,更新
}
}
}
}
}
int main(){
cin>>n>>m;
while(m--){
cin>>x>>y;
add(x,y);
add(y,x);
}
puts("") ;
bfs();
for(int i=1;i<=n;i++)
cout<<ans[i]%mod<<endl;
}