消除相邻相同物品,可以用栈模拟:
从左到右扫描序列:
茶茶同学正在玩一款一维连连看。 初始时,有一排 n 个物品,从左到右编号为 1 到 n,第 i 个物品的类型为 ai。
游戏过程中会不断发生消除,消除规则如下:
每消除一对相邻的相同的物品,记作消除 1 次。
在游戏开始前,她最多可以进行一次插入操作:
请你计算:她最多可以进行多少次消除。
每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≤T≤2×105)代表数据组数,每组测试数据描述如下:
除此之外,保证单个测试文件的 n 之和不超过 4×105。
对于每一组测试数据,新起一行,输出茶茶同学最多可以消除多少次。
输入
2
4
1 2 2 1
5
1 1 2 3 3
输出
2
3
说明
第 1 组数据:初始序列为 (1,2,2,1)。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.