新数组 a′ 是把原数组连续拼接了 109+1 次得到的。
我们要求的是 a′ 的最长严格递增子序列长度。
先抓住两个关键点:
小美有一个长度为 n 的数组 {a1,a2,...,an} 她为了研究这个数组做出了个大胆的决定。现在,将与初始数组完全相同的数组连续拼接到其末尾,共拼接 109 。设拼接完成后的新数组记为 a′ ,则新数组的长度为 n×(109+1),并且对于任意的 n<i≤n×(109+1),都有 ai′=ai−n′
请你计算新数组。a′ 的最长严格递增子序列的长度,并输出这个长度。
【名词解释】
子序列:从原序列中删除任意个(可以为零、可以为全部)元素后按原相对顺席得到的新序列。
严格递增子序列:子序列中相邻元素的值严格递增,即若子序列为 {b1,b2,...,bk},则对所有 1≤i<k,都有 bi≤bi+1
每个测试文件均包含多组测试数据,第一行输入一个整数 T(1≤T≤104)代表数据组数,每组测试数据描述如下:
第一行输入一个整数 n(1≤n≤2×105),表示原数组的长度;
第二行输入 n 个整数 a1,a2,...,an(1≤ai≤n),表示原数组的元素
除此之外,保证单个测试文件的 n 之和不超过 2×105。
对于每一组测试数据,新起一行,输出一个整数,表示新数组的最长严格递增子序列长度。
输入
2
4
1 1 2 3
5
4 5 3 3 4
输出
3
3
说明
在这组测试数据中: