题目描述
给定一个长为 n 的序列 a1,a2,a3,…,an,你需要执行 k 次操作使这个序列为空。
每次操作可以执行下列内容之一:
- 选择两个数 i,j,交换 ai,aj(需要满足 1≤i<j≤n)。
- 选择两个数 i,j,删除 ai,ai+1,…,aj(需要满足 1≤i≤j≤n,且 ai=aj)。
请输出最小的操作数 k。
输入格式
第一行输入一个正整数 T(1≤T≤5),表示有 T 个测试数据。
对于每个测试数据:
第一行输入一个正整数 n(1≤n≤105),表示序列长度为 n。
第二行输入 n 个正整数 a1,a2…an(0≤ai≤109)。
输出格式
对于每个测试数据输出一个正整数 k,表示最少的操作次数。
2
5
1 2 3 2 3
3
1000000000 1000000000 99999999
2
2
提示
数据范围
| 子任务 | 分值 | 限制 | 
| 1 | 10 | n≤3 | 
| 2 | 20 | n≤10 | 
| 3 | ai≤2 | 
| 4 | 10 | 保证所有 ai 相等 | 
| 5 | 40 | - | 
对于 100% 的数据,1≤T≤5,1≤n≤105,0≤ai≤109。