Description
Solutions
考虑使用 SPFA 来解题。
先整理出题意中包含的条件:
1 | 有 n 个点, m 条边(输入输出里面写了),q 个询问。 |
---|---|
2 | 每一次询问中,会给 a_i 号点一个值 L 。 |
3 | i 号点如果有一个值 L 且 L > 0,那么与它有边连接的点就都会有一个值 L-1 ,当 L=0 时,这个点就会被标记。 |
4 | 若 1 号点会被标记时,此询问就要输出 “Yes” ,否则输出 “No” 。 |
因为走到一号点有走了单数条边和双数条边两种情况,那么我们设 m a i ma_i mai 和 m b i mb_i mbi 分别表示 i i i 号点到 1 号点的走单数条边和走双数条边的最短路径长度,用 S P F A SPFA SPFA 去求这些数(剪个枝,时间复杂度不高)。
然后对于每组提问,我们只需要先判断一下这个走的步数 L L L :如果是单数,就与 m a i ma_i mai 比一下,如果小于