CF1992D Test of Love

题目描述

ErnKor 愿意为 Julen 做任何事情,甚至愿意游过鳄鱼出没的沼泽。我们决定考验一下这份爱。ErnKor 需要横渡一条宽为 $1$ 米、长为 $n$ 米的河流。 这条河非常寒冷。因此,在整个游泳过程中(即从 $0$ 到 $n+1$ 米),ErnKor 在水中游泳的总距离不能超过 $k$ 米。为了人道起见,我们不仅在河里放了鳄鱼,还放了可以跳跃的木头。我们的测试如下: 一开始,ErnKor 站在左岸,需要到达右岸。两岸分别位于 $0$ 米和 $n+1$ 米处。河流可以表示为 $n$ 个长度为 $1$ 米的区段。每个区段上可能有木头 'L'、鳄鱼 'C' 或仅仅是水 'W'。ErnKor 的移动规则如下: - 如果他在岸上(即在岸边或在木头上),他可以向前跳跃不超过 $m$ 米(可以跳到岸上、木头上或水中)。 - 如果他在水中,只能游到下一个河段(如果在第 $n$ 米处,可以游到对岸)。 - ErnKor 不能以任何方式落在有鳄鱼的区段。 请判断 ErnKor 是否能顺利到达右岸。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例的第一行包含三个整数 $n, m, k$($0 \le k \le 2 \cdot 10^5$,$1 \le n \le 2 \cdot 10^5$,$1 \le m \le 10$),分别表示河流的长度、ErnKor 能跳跃的最大距离,以及他能在水中游泳的最大距离。 每个测试用例的第二行包含一个长度为 $n$ 的字符串 $a$。$a_i$ 表示第 $i$ 米处的物体($a_i \in \{\text{'W'},\text{'C'},\text{'L'}\}$)。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,如果 ErnKor 能通过考验,输出 "YES";否则输出 "NO"。 输出不区分大小写。例如,"yEs"、"yes"、"Yes" 和 "YES" 都视为肯定回答。

说明/提示

我们来看几个例子: - 第一个例子:我们从岸边跳到第一个木头($0 \rightarrow 1$),从第一个木头跳到第二个($1 \rightarrow 3$),从第二个跳到第四个($3 \rightarrow 5$),最后从最后一个木头跳到岸边($5 \rightarrow 7$)。因此,路径为 $0 \rightarrow 1 \rightarrow 3 \rightarrow 5 \rightarrow 7$。由于没有遇到鳄鱼,且游泳距离不超过 $k$ 米,答案为「YES」。 - 第二个例子:$0 \rightarrow 1$,从第一个木头跳入水中($1 \rightarrow 2$),游泳到木头($2 \leadsto 3$),$3 \rightarrow 4 \rightarrow 5 \rightarrow 6 \rightarrow 7$。由于没有遇到鳄鱼,且游泳距离不超过 $k$ 米,答案为「YES」。 - 第三个例子,ErnKor 需要连续游过两个 'W',但只能游一个。因此答案为「NO」。 - 第六个例子:我们从岸边直接跳入水中($0 \rightarrow 6$),然后在水中游一格到岸边($6 \leadsto 7$)。由于没有遇到鳄鱼,且游泳距离不超过 $k$ 米,答案为「YES」。 由 ChatGPT 4.1 翻译