AT_past201912_k 巨大企業

题目描述

### 题目简述 有一个 $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$ 。

说明/提示

### 注意 この問題に対する言及は、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` と出力する。