社区讨论
bfs60pts求助,1,2,3AC,4MLE,5TLE
P1144最短路计数参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lquqncmw
- 此快照首次捕获于
- 2024/01/01 17:48 2 年前
- 此快照最后确认于
- 2024/01/01 20:48 2 年前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=100005,mod=100003;
struct node{
int u;
int l;
};
queue<node>q;
vector<int>a[N];
int n,m;
int ans[N];
int minn[N];
int f[N];
void bfs()
{
while(!q.empty())
{
node k=q.front();
q.pop();
int g=k.u,d=k.l;f[g]=1;
int len=a[g].size();
for(int i=0;i<len;i++)
{
if(f[a[g][i]]==0)
{
q.push((node){a[g][i],d+1});
if(d+1<minn[a[g][i]])
{
ans[a[g][i]]=0;
minn[a[g][i]]=d+1;
}
if(d+1==minn[a[g][i]])
ans[a[g][i]]=(ans[a[g][i]]+1)%mod;
}
}
}
}
main()
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr), std::cout.tie(nullptr);
cin>>n>>m;
for(int i=1;i<=n;i++)minn[i]=1e+9;
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
a[y].push_back(x);
a[x].push_back(y);
}
minn[1]=1;f[1]=1;ans[1]=1;
q.push((node){1,1});
bfs();
for(int i=1;i<=n;i++)
cout<<ans[i]%mod<<'\n';
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...