CF1851C Tiles Comeback
题目描述
Vlad 记得他有一排 $n$ 块瓷砖,以及一个数字 $k$。这些瓷砖从左到右编号,第 $i$ 块瓷砖的颜色为 $c_i$。
如果你站在第一块瓷砖上,并且每次可以向右跳任意数量的瓷砖,你可以得到一条长度为 $p$ 的路径。路径的长度是你站过的瓷砖的数量。
Vlad 想知道,是否存在一条长度为 $p$ 的路径,使得:
- 路径以编号为 $n$ 的瓷砖结束;
- $p$ 能被 $k$ 整除;
- 路径可以被划分为若干个长度恰好为 $k$ 的区块;
- 每个区块内的瓷砖颜色完全相同,相邻区块的颜色可以相同也可以不同。
例如,设 $n = 14$,$k = 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}]$。那么我们可以构造一条长度为 $6$ 的路径,由 $2$ 个区块组成:
$\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}}$
第 $1$ 个区块的所有瓷砖颜色为 $\color{red}{\textbf{1}}$,第 $2$ 个区块的所有瓷砖颜色为 $\color{blue}{\textbf{4}}$。
在这个例子中,也可以构造一条长度为 $9$ 的路径,其中第 $1$ 个区块的颜色为 $\color{red}{\textbf{1}}$,第 $2$ 个区块的颜色为 $\color{green}{\textbf{3}}$,第 $3$ 个区块的颜色为 $\color{blue}{\textbf{4}}$。
输入格式
输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 $n$ 和 $k$($1 \le k \le n \le 2 \cdot 10^5$),分别表示瓷砖的数量和区块的长度。
每个测试用例的第二行包含 $n$ 个整数 $c_1, c_2, c_3, \dots, c_n$($1 \le c_i \le n$),表示每块瓷砖的颜色。
保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,输出一行:
- 如果存在满足条件的路径,输出 YES;
- 否则输出 NO。
你可以用任意大小写形式输出 YES 和 NO(例如 yEs、yes、Yes 和 YES 都会被识别为肯定回答)。
说明/提示
在第一个测试用例中,你可以直接从第一块瓷砖跳到最后一块瓷砖。
第二个测试用例的解释见题目描述。
由 ChatGPT 4.1 翻译