社区讨论
求助!全WA,哪错了?
P1144最短路计数参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lo8f4dt3
- 此快照首次捕获于
- 2023/10/27 17:35 2 年前
- 此快照最后确认于
- 2023/10/27 17:35 2 年前
CPP
#include<bits/stdc++.h>
#define pii pair<int, int>
using namespace std;
const int N = 1e6 + 5, mod = 100003;
priority_queue<pii, vector<pii>, greater<pii> > q;
int n, m, c[N], d[N], x, y;
bool f[N];
vector<int> a[N];
void dj(int x)
{
int len, s;
memset(d, 0, sizeof(d));
c[x] = 1;
d[x] = 0;
q.push({0, x});
while(!q.empty())
{
len = q.top().first;
x = q.top().second;
q.pop();
if(d[x] < len)
{
continue;
}
for(int y : a[x])
{
if(d[y] > d[x] + 1)
{
c[y] = c[x] % mod;
d[y] = d[x] + 1;
q.push({d[y], y});
}
else if (d[y] == d[x] + 1)
{
c[y] += c[x];
c[y] %= mod;
}
}
}
}
int main()
{
//freopen(".in", "r", stdin);
//freopen(".out", "w", stdout);
cin >> n >> m;
for(int i = 1; i <= m; i++)
{
cin >> x >> y;
if(x != y)
{
a[x].push_back(y);
a[y].push_back(x);
}
}
dj(1);
for(int i = 1; i <= n; i++)
{
cout << c[i] % mod << endl;
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...