CF1451B.Non-Substring Subsequence

入门

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Hr0d1y has qq queries on a binary string ss of length nn. A binary string is a string containing only characters '0' and '1'.

A query is described by a pair of integers lil_i, rir_i (1≤li<ri≤n)(1 \leq l_i \lt r_i \leq n).

For each query, he has to determine whether there exists a good subsequence in ss that is equal to the substring s[li…ri]s[l_i\ldots r_i].

  • A substring s[i…j]s[i\ldots j] of a string ss is the string formed by characters sisi+1…sjs_i s_{i+1} \ldots s_j.
  • String aa is said to be a subsequence of string bb if aa can be obtained from bb by deleting some characters without changing the order of the remaining characters.
  • A subsequence is said to be good if it is not contiguous and has length ≥2\ge 2. For example, if ss is "1100110", then the subsequences s1s2s4s_1s_2s_4 ("1100110") and s1s5s7s_1s_5s_7 ("1100110") are good, while s1s2s3s_1s_2s_3 ("1100110") is not good.

Can you help Hr0d1y answer each query?

Hr0d1y 有 qq 个关于长度为 nn 的二进制字符串 ss 的查询。二进制字符串是指仅由字符 '0' 和 '1' 组成的字符串。

每个查询由一对整数 lil_i, rir_i 描述(满足 1≤li<ri≤n1 \leq l_i \lt r_i \leq n)。

对于每个查询,他需要判断:在 ss 中是否存在一个好的子序列,其内容恰好等于子串 s[li…ri]s[l_i\ldots r_i]。

  • 字符串 ss 的子串 s[i…j]s[i\ldots j] 是由字符 sisi+1…sjs_i s_{i+1} \ldots s_j 构成的字符串。
  • 若字符串 aa 可通过从字符串 bb 中**删除若干字符(不改变剩余字符的相对顺序)**而得到,则称 aa 是 bb 的子序列。
  • 若一个子序列不是连续的(即其对应下标在原字符串中不构成连续区间),且长度 ≥2\ge 2,则称其为好的子序列。例如,若 ss 为 "1100110",则子序列 s1s2s4s_1s_2s_4(对应 "1100110")和 s1s5s7s_1s_5s_7(对应 "1100110")是好的;而 s1s2s3s_1s_2s_3(对应 "1100110")不是好的(因其下标连续)。

你能帮助 Hr0d1y 回答每个查询吗?

输入格式

The first line of the input contains a single integer tt (1≤t≤1001\leq t \leq 100) — the number of test cases. The description of each test case is as follows.

The first line contains two integers nn (2≤n≤1002 \leq n \leq 100) and qq (1≤q≤1001\leq q \leq 100) — the length of the string and the number of queries.

The second line contains the string ss.

The ii-th of the next qq lines contains two integers lil_i and rir_i (1≤li<ri≤n1 \leq l_i \lt r_i \leq n).

输入的第一行包含一个整数 tt(1≤t≤1001\leq t \leq 100),表示测试用例的数量。每个测试用例的描述如下:

第一行包含两个整数 nn(2≤n≤1002 \leq n \leq 100)和 qq(1≤q≤1001\leq q \leq 100),分别表示字符串的长度和查询次数。

第二行包含字符串 ss。

接下来的 qq 行中,第 ii 行包含两个整数 lil_i 和 rir_i(1≤li<ri≤n1 \leq l_i \lt r_i \leq n)。

输出格式

For each test case, output qq lines. The ii-th line of the output of each test case should contain "YES" if there exists a good subsequence equal to the substring s[li...ri]s[l_i...r_i], and "NO" otherwise.

You may print each letter in any case (upper or lower).

对于每个测试用例,输出 qq 行。每个测试用例的输出中,第 ii 行应包含 "YES"(如果存在一个等于子串 s[li...ri]s[l_i...r_i] 的好子序列),否则包含 "NO"。

你可以以任意大小写(大写或小写)输出每个字母。

输入输出样例

  • 输入#1

    2
    6 3
    001000
    2 4
    1 3
    3 5
    4 2
    1111
    1 4
    2 3

    输出#1

    YES
    NO
    YES
    NO
    YES

说明/提示

In the first test case,

  • $s[2\ldots 4] = $ "010". In this case s1s3s5s_1s_3s_5 ("001000") and s2s3s6s_2s_3s_6 ("001000") are good suitable subsequences, while s2s3s4s_2s_3s_4 ("001000") is not good.
  • $s[1\ldots 3] = $ "001". No suitable good subsequence exists.
  • $s[3\ldots 5] = $ "100". Here s3s5s6s_3s_5s_6 ("001000") is a suitable good subsequence.

在第一个测试用例中,

  • $s[2\ldots 4] = $ "010"。此时,s1s3s5s_1s_3s_5("001000")和 s2s3s6s_2s_3s_6("001000")是符合条件的良好子序列,而 s2s3s4s_2s_3s_4("001000")不是良好子序列。
  • $s[1\ldots 3] = $ "001"。不存在符合条件的良好子序列。
  • $s[3\ldots 5] = $ "100"。此时,s3s5s6s_3s_5s_6("001000")是一个符合条件的良好子序列。

输入解题思路,AI测评打分。不知道怎么写?

首页