CF1851C.Tiles Comeback

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

Tiles Comeback

题目描述

Vlad 记得他有一排 nn 块瓷砖,以及一个数字 kk。这些瓷砖从左到右编号,第 ii 块瓷砖的颜色为 cic_i

如果你站在第一块瓷砖上,并且每次可以向右跳任意数量的瓷砖,你可以得到一条长度为 pp 的路径。路径的长度是你站过的瓷砖的数量。

Vlad 想知道,是否存在一条长度为 pp 的路径,使得:

  • 路径以编号为 nn 的瓷砖结束;
  • pp 能被 kk 整除;
  • 路径可以被划分为若干个长度恰好为 kk 的区块;
  • 每个区块内的瓷砖颜色完全相同,相邻区块的颜色可以相同也可以不同。

例如,设 n=14n = 14k=3k = 3

瓷砖的颜色数组为 $c = [\color{red}{1}, \color{violet}{2}, \color{red}{1}, \color{red}{1}, \color{gray}{7}, \color{orange}{5}, \color{green}{3}, \color{green}{3}, \color{red}{1}, \color{green}{3}, \color{blue}{4}, \color{blue}{4}, \color{violet}{2}, \color{blue}{4}]$。那么我们可以构造一条长度为 66 的路径,由 22 个区块组成:

$\color{red}{c_1} \rightarrow \color{red}{c_3} \rightarrow \color{red}{c_4} \rightarrow \color{blue}{c_{11}} \rightarrow \color{blue}{c_{12}} \rightarrow \color{blue}{c_{14}}$

11 个区块的所有瓷砖颜色为 1\color{red}{\textbf{1}},第 22 个区块的所有瓷砖颜色为 4\color{blue}{\textbf{4}}

在这个例子中,也可以构造一条长度为 99 的路径,其中第 11 个区块的颜色为 1\color{red}{\textbf{1}},第 22 个区块的颜色为 3\color{green}{\textbf{3}},第 33 个区块的颜色为 4\color{blue}{\textbf{4}}

输入格式

输入的第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

接下来是每个测试用例的描述。

每个测试用例的第一行包含两个整数 nnkk1kn21051 \le k \le n \le 2 \cdot 10^5),分别表示瓷砖的数量和区块的长度。

每个测试用例的第二行包含 nn 个整数 c1,c2,c3,,cnc_1, c_2, c_3, \dots, c_n1cin1 \le c_i \le n),表示每块瓷砖的颜色。

保证所有测试用例中 nn 的总和不超过 21052 \cdot 10^5

输出格式

对于每个测试用例,输出一行:

  • 如果存在满足条件的路径,输出 YES;
  • 否则输出 NO。

你可以用任意大小写形式输出 YES 和 NO(例如 yEs、yes、Yes 和 YES 都会被识别为肯定回答)。

说明/提示

在第一个测试用例中,你可以直接从第一块瓷砖跳到最后一块瓷砖。

第二个测试用例的解释见题目描述。

由 ChatGPT 4.1 翻译

样例

10
4 2
1 1 1 1
14 3
1 2 1 1 7 5 3 3 1 3 4 4 2 4
3 3
3 1 3
10 4
1 2 1 2 1 2 1 2 1 2
6 2
1 3 4 1 6 6
2 2
1 1
4 2
2 1 1 1
2 1
1 2
3 2
2 2 2
4 1
1 1 2 2
YES
YES
NO
NO
YES
YES
NO
YES
YES
YES

在线编程 IDE

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