#arc148c. [arc148_c]Lights Out on Tree
[arc148_c]Lights Out on Tree
题目描述
我们有一棵根为 ,有 个顶点的树。第 个顶点的父节点是 。
共有 枚硬币,每枚硬币有正面和反面,分别摆放在每个顶点上。
此外,共有 个按钮,编号为 到 。按下按钮 会翻转以顶点 为根的子树上的所有硬币。
进行 个查询,具体如下所述。
第 个查询中,给出了一个大小为 的顶点集合:$S_i = \\lbrace v_{i,1}, v_{i,2},\\dots, v_{i,M_i} \\rbrace$。
现在,顶点集合 上的硬币面朝上,其他顶点上的硬币面朝下。为了通过反复选择按钮并按下它来使这 枚硬币面朝下,至少需要按下多少次按钮?如果无法使所有硬币面朝下,则输出 。
约束条件
- 两两不同。
- 输入中的所有值都是整数。
输入
从标准输入读取输入数据,输入格式如下:
输出
输出结果。
示例输入1
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
1
2
1
3
2
3
对于第一个查询,你可以通过按下按钮一次满足需求,这是所需最少次数,具体操作如下:
- 按下按钮 ,翻转顶点 上的硬币。
对于第二个查询,你可以通过按下按钮两次满足需求,这是所需最少次数,具体操作如下:
- 按下按钮 ,翻转顶点 上的硬币。
- 按下按钮 ,翻转顶点 上的硬币。