巨大企業

题意翻译

### 题目简述 有一个 $n$ 点有向图,每个点的编号由 $1$ 到 $n$ 。除了一个点之外,其它每个点都会有一条边连向另外一个点(不存在重边和自环,也不存在一个点,使得从该点出发,沿着有向边走,能够回到这个点)。现在有 $q$ 组询问,每组询问给定两个点的编号 $a_i$ 和 $b_i$ ,请问能否能从 $a_i$ 出发走到 $b_i$ 。 ### 输入格式 输入 $(n+q+2)$ 行。 第一行:一行一个正整数 $n$ 。 第二行到第 $(n+1)$ 行:第 $(i+1)$ 行输入一个正整数 $p_i$ ,即编号为 $i$ 的点连出的有向边连向的点的编号。 第 $(n+2)$ 行:一行一个正整数 $q$ 。 第 $(n+3)$ 行到第 $(n+q+2)$ 行:第 $(n+i+2)$ 行输入两个正整数 $a_i,b_i$ ,表示询问从 $a_i$ 出发,是否能到达 $b_i$ 。 ### 输出格式 输出 $q$ 行。如果第 $i$ 行输出`Yes`,表示可以从 $a_i$ 走到 $b_i$ ;如果第 $i$ 行输出`No`,表示不可以从 $a_i$ 走到 $b_i$ 。

题目描述

[problemUrl]: https://atcoder.jp/contests/past201912-open/tasks/past201912_k ある企業には $ N $ 人の社員、社員 $ 1,\ \ldots,\ N $ が在籍する。このうち一人は社長であり、上司を持たない。その他の社員はみなちょうど一人の直属の上司を持つ。あなたのデータベースによると、社員 $ i $ $ (1\ \leqq\ i\ \leqq\ N) $ の直属の上司は社員 $ p_i $ である (ただし社員 $ i $ が社長である場合は $ p_i\ =\ -1 $ となっている)。この上下関係に循環は存在しない。 このデータを用いて、二つの社員番号 $ a,\ b $ を入力すると社員 $ a $ が社員 $ b $ の部下であるかを判定するサービスを作りたい。ここで、社員 $ a $ が社員 $ b $ の部下であるとは、社員 $ a $ から直属の上司を辿っていくことで社員 $ b $ に到達できることを意味する。 サービスに入力される $ Q $ 個の社員番号の組 $ (a_1,\ b_1),\ \ldots,\ (a_Q,\ b_Q) $ が与えられる。これらのそれぞれに対して `Yes` または `No` を出力するプログラムを作成せよ。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ p_1 $ $ p_2 $ $ : $ $ p_N $ $ Q $ $ a_1 $ $ b_1 $ $ a_2 $ $ b_2 $ $ : $ $ a_Q $ $ b_Q $

输出格式


$ Q $ 行出力せよ。$ i $ 行目 $ (1\ \leqq\ i\ \leqq\ Q) $ は、社員 $ a_i $ が社員 $ b_i $ の部下であれば `Yes`、そうでなければ `No` とすること。

输入输出样例

输入样例 #1

7
-1
1
1
2
2
3
3
6
7 1
4 1
2 3
5 1
5 2
2 5

输出样例 #1

Yes
Yes
No
Yes
Yes
No

输入样例 #2

20
4
11
12
-1
1
13
13
4
6
20
1
1
20
10
8
8
20
10
18
1
20
18 14
11 3
2 13
13 11
10 15
9 5
17 11
18 10
1 16
9 4
19 6
5 10
17 8
15 8
5 16
6 20
3 19
10 12
5 13
18 1

输出样例 #2

No
No
No
No
No
No
No
Yes
No
Yes
No
No
No
Yes
No
Yes
No
No
No
Yes

说明

### 注意 この問題に対する言及は、2019年12月29日 05:00 JST まで禁止されています。言及がなされた場合、賠償が請求される可能性があります。 試験後に総合得点や認定級を公表するのは構いませんが、どの問題が解けたかなどの情報は発信しないようにお願いします。 ### 制約 - $ 2\ \leqq\ N\ \leqq\ 150,000 $ - 各 $ i\ =\ 1,\ \ldots,\ N $ に対し、$ p_i\ =\ -1 $ または $ 1\ \leq\ p_i\ \leq\ N $ - $ p_i\ =\ -1 $ なる $ i $ はちょうど $ 1 $ つ存在する。 - 社員間の上下関係に循環は存在しない。 - $ 1\ \leqq\ Q\ \leqq\ 100,000 $ - $ 1\ \leqq\ a_i,\ b_i\ \leqq\ N $ - $ a_i\ \neq\ b_i $ ### Sample Explanation 1 社員 $ 1 $ (社長) の直属の部下が社員 $ 2,\ 3 $、社員 $ 2 $ の直属の部下が社員 $ 4,5 $、社員 $ 3 $ の直属の部下が社員 $ 6,7 $ である。 例えば、$ 1 $ 個目の組 $ (7,\ 1) $ に対しては、社員 $ 1 $ は社員 $ 7 $ の直属の上司 (社員 $ 3 $) の直属の上司であるため `Yes` と出力する。