atcoder#ARC148C. [ARC148C] Lights Out on Tree
[ARC148C] Lights Out on Tree
配点 : 点
問題文
頂点に から の番号がついた 頂点の根付き木があります。頂点 が根で、頂点 の親は頂点 です。 表裏のあるコインが 枚あります。コインは全ての頂点の上に 枚ずつ載っています。 また、 から までの番号がついた 個のボタンがあります。ボタン を押すと を根とする部分木に含まれる頂点に載っている全てのコインが裏返ります。
以下で説明するクエリを 個処理してください。
番目のクエリではサイズ の頂点集合 $S_i = \lbrace v_{i,1}, v_{i,2},\dots, v_{i,M_i} \rbrace$ が与えられます。 今、 に含まれる頂点の上に載っているコインは表を、それ以外のコインは裏を向いています。ボタンを つ選んで押すことを繰り返して、 枚のコイン全てを裏向きにするには、最小で何回ボタンを押す必要がありますか?答えを出力してください。ただし、どのようにボタンを押しても 枚のコイン全てが裏向きにならない場合は を出力してください。
制約
- は互いに異なる
- 入力される値はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
行出力せよ。 行目には 番目のクエリの答えを出力せよ。
6 6
1 1 2 2 5
6 1 2 3 4 5 6
3 2 5 6
1 3
3 1 2 3
3 4 5 6
4 2 3 4 5
1
2
1
3
2
3
番目のクエリについて、以下に説明するようにボタンを 回押すことで条件を満たすことができて、これが最小です。
- ボタン を押す。頂点 に載っているコインが裏返る。
番目のクエリについて、以下に説明するようにボタンを 回押すことで条件を満たすことができて、これが最小です。
- ボタン を押す。頂点 に載っているコインが裏返る。
- ボタン を押す。頂点 に載っているコインが裏返る。