代码如下 ↓
#include<bits/stdc++.h>
#define ci int
#define cll long long
#define cull unsigned long long
#define cus unsigned short
#define cb bool
#define cd double
#define cf float
#define cs string
#define cc char
#define r0 return 0
#define in cin
#define out cout
using namespace std;
ci m,n,f[4000010],nxt[4000010],to[4000010],num,sum[1000010],mi[1000010];
cb b[1000010];
void add(ci _a,ci _b){
to[++num]=_b;
nxt[num]=f[_a];
f[_a]=num;
}
void dfs(ci u,ci fa,ci ans){
if(ans==mi[u]){
sum[u]+=1;
sum[u]%=100003;
}
else if(ans<mi[u]){
mi[u]=ans;
sum[u]=1;
}
for(ci i=f[u];i;i=nxt[i]){
ci tp=to[i];
if(tp==fa||ans+1>mi[tp]){
continue;
}
dfs(tp,u,ans+1);
}
}
int main(){
in>>n>>m;
for(ci i=1;i<=m;i++){
ci x,y;
in>>x>>y;
add(x,y);
add(y,x);
}
memset(mi,64,sizeof(mi));
dfs(1,0,1);
for(ci i=1;i<=n;i++){
out<<sum[i]<<endl;
}
r0;
}
谢谢大家~