#P4268. [清华集训 2017] 小 Y 和地铁

[清华集训 2017] 小 Y 和地铁

题目描述

小 Y 是一个爱好旅行的 OIer。一天,她来到了一个新的城市。由于不熟悉那里的交通系统,她选择了坐地铁。

她发现每条地铁线路可以看成平面上的一条曲线,不同线路的交点处一定会设有换乘站 。通过调查得知,没有线路是环线,也没有线路与自身相交。任意两条不同的线路只会在若干个点上相交,没有重合的部分,且没有三线共点的情况。即,如图所示的情况都是不存在的:

小 Y 坐着地铁 00 号线,路上依次经过了 nn 个换乘站。她记下了每个换乘站可以换乘的线路编号,发现每条线路与她所乘坐的线路最多只有 22 个换乘站。现在小 Y 想知道,除掉她经过的换乘站以外,这个城市里最少有几个换乘站。只有你告诉她正确的答案,她才会答应下次带你去玩呢。

输入格式

请注意本题有多组输入数据。

输入数据的第一行是一个整数 TT,表示输入数据的组数。接下来依次给出每组数据。

对于每组数据,第一行是一个整数 nn,表示小 Y 经过的换乘站的数目。第二行为 nn 个用空格隔开的整数,依次表示每个换乘站的可以换乘的线路编号。这些编号都在 1n1\sim n 之内。

输出格式

对于每组输入数据,输出一行一个整数,表示除掉这 nn 个换乘站之外,最少有几个换乘站。

4 4
1 2 1 2
8
1 2 3 4 1 2 3 4
5
5 4 3 3 5
8
1 2 3 4 1 3 2 4
0 
0 
0 
1

对于样例的前两组数据,一种可能的最优答案如下图所示。

提示

一共有 5050 个测试点,每个测试点 22 分。你只有在答案完全正确时才能得到该测试点的全部分数,否则不得分。

对于所有测试点,以及对于样例, 1T1001 \leq T \leq 100, 1n441 \leq n \leq 44。对于每个测试点, nn 的范围如下表:

测试点编号 1n1 \le n \le 测试点编号 1n1 \le n \le
11 22 1919 2626
22 33 2020 2828
33 44 212221 \sim 22 3030
44 55 232423 \sim 24 3131
55 66 252625 \sim 26 3232
66 88 272827 \sim 28 3333
77 99 293029 \sim 30 3434
88 1010 313231 \sim 32 3535
99 1111 333433 \sim 34 3636
1010 1212 353635 \sim 36 3737
1111 1313 373837 \sim 38 3838
1212 1414 394039 \sim 40 3939
1313 1515 414241 \sim 42 4040
1414 1616 434443 \sim 44 4141
1515 1717 454645 \sim 46 4242
1616 2020 474847 \sim 48 4343
1717 2222 495049 \sim 50 4444
1818 2424