#P11013. 「ALFR Round 4」C 粉碎

    ID: 10571 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>动态规划,dp贪心O2优化

「ALFR Round 4」C 粉碎

题目描述

斌宝在玩纸牌。起初,他有 nn 张牌,第 ii 张牌的点数为 AiA_i

斌宝会重复执行 nn 轮以下操作,第 ii 轮操作如下:

  1. 斌宝需要选择将第 ii 张牌置于牌堆的最左边或者最右边;
  2. 若牌堆中存在两张点数相同的牌,则斌宝会立即将两张牌之间的所有牌从牌堆取出,扔进碎纸机(包括这两张牌本身)。

总是会先执行插入操作再执行粉碎操作。

牌堆初始为空。

你需要告诉斌宝他最多能粉碎多少张牌。

输入格式

第一行,一个整数 TT,表示数据组数。

对于每组数据:

第一行一个整数 nn

第二行 nn 个数表示 A1,A2,A3,,AnA_1,A_2,A_3,\cdots,A_n

输出格式

对于每组数据,输出斌宝最多能粉碎多少张牌。

4
8
1 3 3 1 2 1 2 2
8
3 2 2 1 2 1 2 1
6
1 2 1 2 1 2
6
1 2 3 4 5 6
8
7
6
0

提示

样例解释

初始牌堆:{}\{\}

放入 11{1}\{1\}

放入 33{1,3}\{1,3\}

放入 33{3,1,3}\{3,1,3\},然后粉碎:{}\{\}

放入 11{1}\{1\}

放入 22{1,2}\{1,2\}

放入 11{1,2,1}\{1,2,1\},然后粉碎:{}\{\}

放入 22{2}\{2\}

放入 22{2,2}\{2,2\},然后粉碎:{}\{\}

所有牌均被粉碎。

数据范围

子任务 分值 限制
00 2020 n20n\le 20
11 T=1,n=103T=1,n=10^3AiA_i[1,n][1,n] 内随机生成
22 4040 n103n\le10^3
33 2020 -

对于 100%100\% 的数据,1T51\le T\le51n5×1051\le n\le5\times10^51Ain1\le A_i\le n