luogu#P11446. 「ALFR Round 3」B Swap & Delete

「ALFR Round 3」B Swap & Delete

题目背景

English Statement

题目描述

给定一个长为 nn 的序列 a1,a2,a3,,ana_1, a_2,a_3, \dots ,a_n,你需要执行 kk 次操作使这个序列为空。

每次操作可以执行下列内容之一:

  1. 选择两个数 i,ji, j,交换 ai,aja_i, a_j(需要满足 1i<jn1 \le i < j \le n)。
  2. 选择两个数 i,ji, j,删除 ai,ai+1,,aja_i,a_{i+1}, \dots ,a_j(需要满足 1ijn1 \le i \le j \le n,且 ai=aja_i = a_j)。

请输出最小的操作数 kk

输入格式

第一行输入一个正整数 TT1T51 \le T \le 5),表示有 TT 个测试数据。

对于每个测试数据:

第一行输入一个正整数 nn1n1051 \le n \le 10^5),表示序列长度为 nn

第二行输入 nn 个正整数 a1,a2ana_1,a_2 \dots a_n0ai1090 \le a_i \le 10^9)。

输出格式

对于每个测试数据输出一个正整数 kk,表示最少的操作次数。

2
5
1 2 3 2 3
3
1000000000 1000000000 99999999
2
2

提示

数据范围

子任务 分值 限制
11 1010 n3n\le 3
22 2020 n10n\le 10
33 ai2a_i\le 2
44 1010 保证所有 aia_i 相等
55 4040 -

对于 100%100\% 的数据,1T51\le T \le 51n1051\le n\le 10^50ai1090\le a_i\le 10^9