将传送带上的品质等级序列无限循环,等价于把序列 c1,c2,…,cn 重复拼接 109+1 次,得到的新序列记为 c′。
我们要求的是 c′ 的最长严格递增子序列长度。
先抓住两个关键点:
在一个自动化仓库中,有一条长度为 n 的环形传送带,传送带上依次摆放着 n 个货物,货物按固定顺序不断循环移动。第 i 个货物的品质等级为 ci(1≤i≤n)。
操作员可以按传送带的运行方向,在任意时刻选择当前经过的货物进行收集。被收集的货物必须严格按照品质等级递增的顺序(即后一个货物的等级必须大于前一个货物的等级)。
由于传送带循环次数极多(可以视为 109+1 次完整循环),操作员有非常多的机会来选择货物。请你计算,在这条无限循环的传送带上,操作员最多可以收集多少个货物,使得品质等级严格递增。
数据范围:
第一行输入一个整数 T(1≤T≤104),表示测试数据组数。随后每组数据: 第一行包含一个整数 n(1≤n≤2imes105),表示传送带上的货物数量。 第二行包含 n 个整数 c1,c2,…,cn(1≤ci≤n),表示货物的品质等级。
对于每组测试数据,输出一行一个整数,表示能够收集的满足严格递增品质等级的最多货物数量。
输入
1
5
2 3 1 2 4
输出
4
说明
传送带长度为 n=5,品质等级序列为 c=[2,3,1,2,4]。由于传送带无限循环,操作员可以在不同圈中选取货物,只要满足严格递增即可。数组中出现过的不同品质等级有 1、2、3、4,它们可以按递增顺序依次被收集(例如第一圈收集 1,下一圈收集 2,再收集 3,最后收集 4)。因此,最多可收集的货物数量等于不同品质等级的个数,为 4。
输入
1
3
5 5 5
输出
1
说明
传送带长度 n=3,品质等级序列为 c=[5,5,5]。所有货物等级均为 5,无法形成严格递增序列。无论循环多少次,操作员最多只能收集 1 个货物。答案为 1。
输入
1
1
1
输出
1
说明
边界情况:传送带长度 n=1,唯一货物的品质等级为 1。操作员只能收集该货物,因此最多收集数量为 1。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册