問題一覧 > 通常問題

No.1641 Tree Xor Query

レベル : / 実行時間制限 : 1ケース 5.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 139
作問者 : harurun / テスター : 👑 Kazun magsta
3 ProblemId : 6667 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2021-08-06 20:40:03

問題文

1N の番号が付いた N 頂点の木が与えられます。

この木の根は頂点 1 です。

各頂点にはコストがあり、頂点 i のコストは Ci です。 (1iN)

また、i 番目の辺 (1iN1) は 頂点 ai と頂点 bi を結びます。

以下のクエリが Q 回与えられるので、処理してください。

  • j 回目のクエリ (1jQ) では以下の操作を行う。

    • Tj=1 のとき

    • CxjCxjyj で置き換える。

    • Tj=2 のとき

    • 頂点 xj を根とする部分木の全ての頂点のコストの xor を出力する。

ただし、 ab はビット単位の xor を表します。

制約

  • 2N105

  • 1Q105

  • 0Ci<210 (1iN)

  • 1ai,biN (1iN1)

  • Tj1 または 2 である。 (1jQ)

  • 1xjN (1jQ)

  • Tj=1 のとき、 0yj<210 (1jQ)

  • Tj=2 のとき、 yj=0 (1jQ)

  • クエリに Tj=2 (1jQ) は少なくとも 1 つは含まれる。

  • 入力は全て整数である。

  • 与えられるグラフは木である。

入力

N Q
C1 C2  CN
a1 b1
a2 b2

aN1 bN1
T1 x1 y1
T2 x2 y2

TQ xQ yQ
  • 1 行目には、 NQ が空白区切りで与えられる。

  • 2 行目には、各頂点のコスト C1,C2,,CN が空白区切りで与えられる。

  • 3 行目から N+1 行目には、 aibi が空白区切りで与えられる。 (1iN1)

  • N+2 行目から N+Q+1 行目には、 Tj, xj, yj が空白区切りで与えられる。 (1jQ)

出力

Tj=2 (1jQ) であるような各クエリについて 1 行ずつ出力してください。

最後に改行してください。

サンプル

サンプル1
入力
3 3
1 2 3
1 2
1 3
1 2 3
1 3 4
2 1 0
出力
7

1 回目のクエリで、 C2C2y1=23=1 で置き換えます。

2 回目のクエリで、 C3C3y2=34=7 で置き換えます。

3 回目のクエリで、 頂点 1 を根とする部分木のコストの総 xor C1C2C3=117=7 となるので、 7 を出力します。

サンプル2
入力
6 3
1 2 3 4 5 6
1 2
1 3
2 4
2 6
4 5
1 6 6
1 4 4
2 2 0
出力
7

サンプル3
入力
2 1
1 2
1 2
2 2 0
出力
2

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