CF1529B.Sifid and Strange Subsequences

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Sifid and Strange Subsequences

题目描述

一个序列 (b1,b2,,bk) (b_1, b_2, \ldots, b_k) 被称为“奇怪的”,如果其任意两个元素的绝对差都大于等于该序列中的最大元素。形式化地说,如果对于每一对 (i,j) (i, j) 满足 1i<jk 1 \le i < j \le k ,都有 aiajMAX |a_i - a_j| \geq MAX ,其中 MAX MAX 是该序列中的最大元素。那么该序列就是奇怪的。特别地,长度不超过 11 的任意序列都是奇怪的。

例如,序列 (2021,1,1,1) (-2021, -1, -1, -1) (1,0,1) (-1, 0, 1) 都是奇怪的,但 (3,0,1) (3, 0, 1) 不是,因为 01<3 |0 - 1| < 3

Sifid 有一个长度为 n n 的整数数组 a a 。Sifid 喜欢一切大的东西,所以在所有 a a 的奇怪子序列中,他想找到最长的那个。你能帮帮他吗?

如果序列 c c 可以通过从数组 d d 中删除若干(可能为零或全部)元素得到,那么 c c 就是 d d 的一个子序列。

输入格式

第一行包含一个整数 t t (1t104)(1\le t\le 10^4),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 n n (1n105)(1\le n\le 10^5),表示数组 a a 的长度。

每个测试用例的第二行包含 n n 个整数 a1,a2,,an a_1, a_2, \ldots, a_n (109ai109)(-10^9\le a_i \le 10^9),表示数组 a a 的元素。

保证所有测试用例中 n n 的总和不超过 105 10^5

输出格式

对于每个测试用例,输出一个整数,表示 a a 的最长奇怪子序列的长度。

说明/提示

在第一个测试用例中,最长的奇怪子序列之一是 (a1,a2,a3,a4) (a_1, a_2, a_3, a_4)

在第二个测试用例中,最长的奇怪子序列之一是 (a1,a3,a4,a5,a7) (a_1, a_3, a_4, a_5, a_7)

在第三个测试用例中,最长的奇怪子序列之一是 (a1,a3,a4,a5) (a_1, a_3, a_4, a_5)

在第四个测试用例中,最长的奇怪子序列之一是 (a2) (a_2)

在第五个测试用例中,最长的奇怪子序列之一是 (a1,a2,a4) (a_1, a_2, a_4)

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

建议全屏模式获得最佳体验