SP9974 MENMARS - Men From Mars

题目描述

火星上的人类发现金星上住着美丽的女性居民。于是,火星的男性们决心改变生活方式,希望乘坐飞船前往金星,开创新生活。不过,金星的女性崇尚联系和关系,如果不能有一个“完全连通”的飞船小组,且其飞船数量超过某个最小阈值,她们是不会让这些飞船通过的。“完全连通”意味着每对飞船可以互相通信。 在火星上,机场和飞船的系统极其复杂。首先,飞船之间的通信只有在机场总部发出指令后才能建立。其次,由于机场规模较小,每次最多只能随机发射 $K$ 艘飞船。总部有两种命令可以用来管理飞船之间的连接:1) **Flip** 命令针对某个组,会在组内没有通信的飞船之间建立新的通信,并断开先前已连接的飞船;2) **Merge** 命令合并多个组,而不改变它们内部的连接方式。 在这些条件下,我们无法让所有飞船始终处于一个完全连通的态势下飞行,难以满足金星女性的要求。因此,火星男性开发了一种自动化软件,通过分步发令和发射飞船,力图在命令(Flip、Merge)的操作下,最终得到一个包含最大数量飞船的完全连通子组,以便能够允许他们前往金星。 现给定飞船的初始分组状况及其已发出的命令,你需要计算在所有命令执行后,最大可能的完全连通的飞船数量。

输入格式

第一行包含一个整数 $T$,表示测试用例的总数。接下来是 $T$ 个测试用例。每个测试用例从一行开始,包含两个整数 $N$ 和 $G$,分别表示飞船的总数和初始分组的数量。接下一行有 $N-1$ 个整数,表示每艘飞船起初所属的组。然后是若干命令,每个命令占一行。Flip 命令的格式为 “**F** 组ID”,指翻转指定组。Merge 命令的格式为 “**M** T 组ID1, 组ID2… 组IDT”,合并 $T$ 个组,新组ID为合并组中的最大ID。

输出格式

对于每个测试用例,输出一行,格式为 “Case K: T”,其中 $K$ 是测试用例编号,$T$ 是最后完全连通的最大飞船数量。 **样例输入** ``` 1 7 4 3 3 0 1 0 2 1 2 2 1 0 1 1 0 1 0 F 1 M 2 1 2 F 0 M 2 0 2 F 2 M 2 3 2 ``` **样例输出** ``` Case 1: 6 ```

说明/提示

**样例解释** 在这个示例中,我们有7艘飞船,起初分为4个组。第一组(ID = 0)形成一个三角形,第二组是线段形,第三和第四组(ID = 3)各是一艘孤立的飞船。第一个命令翻转第二组,使其变为两艘孤立的飞船。第二个命令将两组合并,新组ID为2,包含三艘孤立飞船。第三个命令翻转第一组,使之成为三艘孤立飞船。第四个命令合并它们为一个新的6艘孤立飞船组,ID 变为2。第五个命令翻转此组,使其完全连通。最后,将此组与第四组合并,得到一个ID为3的新组,完全连通组有6艘飞船,另有1艘孤立飞船。 **本翻译由 AI 自动生成**