atcoder#ARC148C. [ARC148C] Lights Out on Tree

[ARC148C] Lights Out on Tree

题目描述

頂点に 1 1 から N N の番号がついた N N 頂点の根付き木があります。頂点 1 1 が根で、頂点 i i (2  i  N) (2\ \leq\ i\ \leq\ N) の親は頂点 Pi P_i です。
表裏のあるコインが N N 枚あります。コインは全ての頂点の上に 1 1 枚ずつ載っています。
また、1 1 から N N までの番号がついた N N 個のボタンがあります。ボタン n n を押すと n n を根とする部分木に含まれる頂点に載っている全てのコインが裏返ります。

以下で説明するクエリを Q Q 個処理してください。

i i 番目のクエリではサイズ Mi M_i の頂点集合 $ S_i\ =\ \lbrace\ v_{i,1},\ v_{i,2},\dots,\ v_{i,M_i}\ \rbrace $ が与えられます。
今、Si S_i に含まれる頂点の上に載っているコインは表を、それ以外のコインは裏を向いています。ボタンを 1 1 つ選んで押すことを繰り返して、N N 枚のコイン全てを裏向きにするには、最小で何回ボタンを押す必要がありますか?答えを出力してください。ただし、どのようにボタンを押しても N N 枚のコイン全てが裏向きにならない場合は 1 -1 を出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N Q Q P2 P_2 P3 P_3 \dots PN P_N M1 M_1 v1,1 v_{1,1} v1,2 v_{1,2} \dots v1,M1 v_{1,M_1} M2 M_2 v2,1 v_{2,1} v2,2 v_{2,2} \dots v2,M2 v_{2,M_2} \vdots MQ M_Q vQ,1 v_{Q,1} vQ,2 v_{Q,2} \dots vQ,MQ v_{Q,M_Q}

输出格式

Q Q 行出力せよ。i i 行目には i i 番目のクエリの答えを出力せよ。

题目大意

题意:

给你一颗有根树,每个节点是黑色或白色,初始全为白色。

每次询问给出一个点集 SS,把点集中的点全部染成黑色,问至少需要翻转多少个节点使整棵树全为白点,无解输出 -1

翻转的定义为:将节点 uu 及其子树中所有节点颜色翻转。

输入:

第一行 NNQQ 表示节点数和询问次数;

第二行 N1N-1 个整数 PiP_i 表示节点 ii 的父节点;

之后 QQ 行,每行第一个整数 MiM_i 表示点集 SS 大小,余下 MiM_i 个整数 vi,jv_{i,j} 表示点集 SS

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

提示

制約

  • 2  N  2 × 105 2\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  Pi < i 1\ \leq\ P_i\ \lt\ i
  • 1  Q  2 × 105 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5
  • 1  Mi 1\ \leq\ M_i
  • $ \displaystyle\ \sum_{i=1}^Q\ M_i\ \leq\ 2\ \times\ 10^5 $
  • 1  vi,j  N 1\ \leq\ v_{i,j}\ \leq\ N
  • vi,1, vi,2,,vi,Mi v_{i,1},\ v_{i,2},\dots,v_{i,M_i} は互いに異なる
  • 入力される値はすべて整数

Sample Explanation 1

1 1 番目のクエリについて、以下に説明するようにボタンを 1 1 回押すことで条件を満たすことができて、これが最小です。 - ボタン 1 1 を押す。頂点 1,2,3,4,5,6 1,2,3,4,5,6 に載っているコインが裏返る。 2 2 番目のクエリについて、以下に説明するようにボタンを 2 2 回押すことで条件を満たすことができて、これが最小です。 - ボタン 4 4 を押す。頂点 4 4 に載っているコインが裏返る。 - ボタン 2 2 を押す。頂点 2,4,5,6 2,4,5,6 に載っているコインが裏返る。