T. 行星查询 II

    Type: Default 1000ms 256MiB

行星查询 II

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

翻译自 CSES-1160 题。

题目描述

你正在玩一个由 nn 个行星组成的游戏。每个行星都有一个传送门,可以传送到另一个行星(或者是它自己)。

你的任务是处理 qq 个查询,查询的形式是:你现在在行星 aa 上,想要到达行星 bb。请问最少需要多少次传送?

输入格式

第一行包含两个整数 nnqq:分别表示行星的数量和查询的数量。行星编号为 1,2,,n1,2,…,n

第二行包含 nn 个整数 t1,t2,,tnt_1,t_2,…,t_n:表示每个行星的传送门目的地。如果 ti=it_i = i,则表示该行星的传送门指向自己。

接下来的 qq 行,每行包含两个整数 aabb:表示你现在在行星 aa 上,想要到达行星 bb

输出格式

对每个查询,输出到达目标行星所需的最少传送次数。如果无法到达目标行星,输出 1−1

样例

5 3
2 3 2 3 2
1 2
1 3
1 4
1
2
-1

说明/提示

1n,q21051 \leq n,q \leq 2 \cdot 10^5

1tin1 \leq t_i \leq n

1a,bn1 \leq a,b \leq n

CSES4 图论

Not Claimed
Status
Done
Problem
36
Open Since
2025-5-21 0:00
Deadline
2025-5-31 23:59
Extension
24 hour(s)