额,这布局怎么回事
by C201914 @ 2018-07-05 09:32:05
```cpp
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define INF 0x7ffffff
using namespace std;
int n,cnt=0,jf[1000001],bj[1000001],q[1000001],head=1,tail=1,h[1000001],dist[1000001],m;
struct fd{
int next;
int to;
}a[4000001];
void add(int x,int y)
{
cnt++;
a[cnt].to=y;
a[cnt].next=h[x];
h[x]=cnt;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1,x,y;i<=m;i++)
{
scanf("%d%d",&x,&y);
add(x,y);
add(y,x);
}
for(int i=1;i<=n;i++)dist[i]=INF;dist[1]=0;jf[1]++;
q[1]=1;
while(head<=tail)
{
int L=q[head];
bj[L]=0;
head++;
for(int u=h[L];u;u=a[u].next)
{
if(dist[a[u].to]>dist[L]+1)
{
dist[a[u].to]=dist[L]+1;
jf[a[u].to]=jf[L];
if(!bj[a[u].to])
{
tail++;
q[tail]=a[u].to;
bj[a[u].to]=1;
}
}
else if(dist[a[u].to]==dist[L]+1)
jf[a[u].to]+=jf[L];jf[a[u].to]%100003;
}
}
for(int i=1;i<=n;i++)
{
if(dist[i]!=INF)printf("%d\n",jf[i]%100003);
else printf("0\n");
}
}
```
by C201914 @ 2018-07-05 09:37:34
期末考完了心情很好(_~~凉凉~~_ )
by C201914 @ 2018-07-05 10:02:44