巨大企業
题意翻译
### 题目简述
有一个 $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` と出力する。