题解 P6770 【[USACO05MAR]Checking an Alibi 不在场的证明】
Description
给定一个
N 点M 边的图,有C 个有奶牛的点,如果他们到达点1 的最短时间在\rm limit 内,那么就算这只奶牛犯罪。求有哪些奶牛犯罪。
Solution
这题其实可以简化为最短路。
因为我们要求的是每只奶牛到达点
为了更简便一点,我们可以使用 SPFA,进行一次 SPFA,然后调用
在最后统计答案的时候容易错,放一下统计答案的代码。
for (int i = 1, x; i <= c; i++) {
scanf("%d", &x);
if (dist[x] <= limit)
ans[++pnt] = i;
}
printf("%d\n", pnt);
sort(ans + 1, ans + pnt + 1);
for (int i = 1; i <= pnt; i++)
printf("%d\n", ans[i]);
By Shuchong
2020.8.18