如果你是用的是 SPFA 并且在初始化 dist 数组的时候,这么写:
memset(dist, 0x3f, sizeof(dist));
那么就要注意,在最后输出方案的时候,判断是否联通的时候需要这样
for (int i = 1; i <= m; i++)
if (dist[i] != 1061109567)
printf("%d ", i);
而非像 bfs 分层一样
for (int i = 1; i <= m; i++)
if (dist[i])
printf("%d ", i);
虽然我自己都没想明白我为什么不写 bfs 而写 SPFA