luogu - 3556 [POI2013]MOR-Tales of seafaring
题目大意
给定无向图$G=(V,E)$,$|V|=n$,$|E|=m$,有$k$个询问,问你$x$和$y$之间有没有长度为$d$的路径
数据范围
$2\leq n \leq 5000$
$1 \leq m \leq 5000$
$1 \leq d \leq 1e^9$
解题思路
既然是无向图,那么我们可以在某条边上来回走,那么我们只用处理处$x$到$y$的奇数最短路和偶数最短路即可,但是$k$的范围过大,如果对于每一次询问都进行一次$bfs$显然会超时,由于$n$只有$5000$,则说明$k$次询问中有很多重复的节点,我们考虑使用二维数组记录已经处理过的节点,避免重复运算
注意:
- 二维数组要是用$short$而不能使用$int$类型,否则会超出内存
- 要判断$x = y$的情况,有可能是孤立点,那么就不存在长度为$2$的路径
- 要判断$x$与$y$不连通的情况
- 本题卡常数,要开O2优化
AC代码
1 |
|