说明
定义序列的一个极长连续段为三元组 (l,r,x) 满足 ∀l≤i≤r,ai=x 且 al−1=x,ar+1=x。
如对于序列 1,2,2,3,3,3,其极长连续段分别为 (1,1,1),(2,3,2),(4,6,3)。
若你有一个序列 {an},定义一次变换为:
- 找出其中所有极长连续段,记为 (li,ri,ai)。另开一个数组 b,按照极长连续段从左到右的顺序加入 ri−li+1,ai 两个数至 b 的末尾。
- a←b。
例如 1,2,2,3,3,3,1,3 在经过一次变换后会变为 1,1,2,2,3,3,1,1,1,3。
给你 k 和序列 {an},满足 ∀i,ai≤k。你的任务是判断在有限次变换内其中是否只会出现 ≤k 的数。
输入格式
本题包含多组测试。
第一行一个整数 T,表示测试数据组数。对于每组测试数据:
第一行两个整数 n,k,表示序列长度和值域。
接下来一行 n 个用空格隔开的整数,表示序列 {an}。
输出格式
输出 T 行。对于每组测试数据,如果可以在有限次变换内序列中只会出现 ≤k 的数,输出 YES,否则输出 NO。
4
4 2
1 1 2 1
1 3
3
2 998244353
998244352 998244353
3 2
1 2 1
NO
YES
YES
NO
提示
样例 #1 解释
对于第一组数据,序列 1,1,2,1 的变换过程如下:
- 2,1,1,2,1,1。
- 1,2,2,1,1,2,2,1。
- 1,1,2,2,2,1,2,2,1,1。
- 2,1,3,2,1,1,2,2,2,1。此时序列中出现了 >2 的数,故输出
NO。
数据范围
本题开启捆绑测试。
对于 100% 的数据,1≤T≤104,1≤n,1≤∑n≤2×106,1≤ai≤k≤109。
| 子任务 |
特殊性质 |
得分 |
| 1 |
k=1 |
2 |
| 2 |
∑n≤1000 |
18 |
| 3 |
无 |
80 |
后记
:::epigraph[——《下一个天亮》]
时间可以磨去我的棱角
有些坚持却永远磨不掉
:::