問題一覧 > 通常問題

No.2319 Friends+

レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 77
作問者 : 👑 amentorimaruamentorimaru / テスター : 👑 tatyamtatyam cleanttedcleantted
1 ProblemId : 9355 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-05-10 22:26:28

問題文

ある仮想空間には $1,2,\dots,N$ の番号がつけられた $N$ 匹のエトワーニュくんがおり、$1,2,\dots,N$ の番号がつけられた $N$ 個のワールドが存在します。最初、エトワーニュくん $i$ はワールド $P_i$ にいます。

また、エトワーニュくんたちの間には $M$ 組の双方向のフレンド関係があり、エトワーニュくん $A_i$ とエトワーニュくん $B_i$ はお互いにフレンドです。

これからエトワーニュくんたちは、以下に示す join コマンドを使ってワールド間を行き来します。うろうろしていてかわいいですね。

join コマンド

エトワーニュくん $X$ がエトワーニュくん $Y$ に対して join コマンドを使用すると、以下のことが起こります。

  • 次の $2$ つの条件を満たすとき join コマンドは成功し、エトワーニュくん $X$ がエトワーニュくん $Y$ のいるワールドに移動します。
    • エトワーニュくん $X$ とエトワーニュくん $Y$ が異なるワールドにいる
    • エトワーニュくん $Y$ のいるワールドにエトワーニュくん $X$ のフレンドが少なくとも一匹いる
  • そうでないとき join コマンドは失敗し、エトワーニュくん $X$ はその場にとどまります。

エトワーニュくんたちの行う $Q$ 回の join コマンドが順に与えられます。$i$ 回目のコマンドは、エトワーニュくん $X_i$ がエトワーニュくん $Y_i$ に join するというものです。それぞれのコマンドの成否を判定してください。

入力

$N \ M$
$P_1 \ P_2 \ \dots P_N$
$A_1 \ B_1$
$A_2 \ B_2$
$\vdots$
$A_M \ B_M$
$Q$
$X_1 \ Y_1$
$X_2 \ Y_2$
$\vdots$
$X_Q \ Y_Q$

  • 入力は全て整数
  • $1 \le N \le 2 \times 10^4$
  • $0 \le M \le \min(2 \times 10^5, N(N+1)/2)$
  • $1 \le Q \le 2 \times 10^5$
  • $1 \le A_i,B_i,X_i,Y_i,P_i \le N$
  • $i \ne j$ のとき $(A_i,B_i) \ne (A_j,B_j)$ かつ $(A_i,B_i) \ne (B_j,A_j)$

出力

$Q$ 行出力せよ。$i$ 行目には、$i$ 回目の join コマンドが成功するならば Yes を、失敗するならば No を出力せよ。

サンプル

サンプル1
入力
4 2
1 2 2 3
1 2
1 4
5
1 3
1 4
2 4
1 4
1 3
出力
Yes
Yes
Yes
No
No

最初、エトワーニュくん $1, 2, 3, 4$ はそれぞれワールド $1, 2, 2, 3$ にいます。エトワーニュくん $1$ とエトワーニュくん $2$ 及びエトワーニュくん $1$ とエトワーニュくん $4$ はお互いにフレンドです。

$1$ 回目のコマンドでは、エトワーニュくん $1$ とエトワーニュくん $3$ はフレンドではありませんが、エトワーニュくん $3$ と同じワールドにいるエトワーニュくん $2$ がとエトワーニュくん $1$ のフレンドなので join に成功します。Yes を出力し、全員のいるワールドはそれぞれ $2,2,2,3$ になります。

$2$ 回目のコマンドでは、エトワーニュくん $1$ とエトワーニュくん $4$ はフレンドなので join に成功します。Yes を出力し、全員のいるワールドはそれぞれ $3,2,2,3$ になります。

$3$ 回目のコマンドでは、エトワーニュくん $2$ とエトワーニュくん $4$ はフレンドではありませんが、エトワーニュくん $4$ と同じワールドにいるエトワーニュくん $1$ がエトワーニュくん $2$ のフレンドなので join に成功します。Yes を出力し、全員のいるワールドはそれぞれ $3,3,2,3$ になります。

$4$ 回目のコマンドでは、エトワーニュくん $1$ とエトワーニュくん $4$ はフレンドですが、 同じワールドにいるので失敗します。No を出力します。

$5$ 回目のコマンドでは、エトワーニュくん $3$ のいるワールドにエトワーニュくん $1$ のフレンドは一人もいませんので join に失敗します。No を出力します。

サンプル2
入力
1 1
1
1 1
1
1 1
出力
No

この仮想空間では自分自身とフレンドになることは可能なようです。

エトワーニュくん $1$ がエトワーニュくん $1$ に join しようとしますが、同じワールドにいるので失敗します。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。