CFCF2053G.Naive String Splits

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

Cocoly 有一个长度为 mm 的字符串 tt,全部由小写字母组成。他希望可以把这个字符串拆分成多个部分。若存在一个字符串序列 a1,a2,,aka_1, a_2, \ldots, a_k,满足:

  • t=a1+a2++akt = a_1 + a_2 + \ldots + a_k,其中 ++ 表示字符串的连接。
  • 对于每个 1ik1 \leq i \leq k,至少满足 ai=xa_i = xai=ya_i = y

那么就称字符串对 (x,y)(x, y) 是美丽的。

Cocoly 还有一个长度为 nn 的字符串 ss,同样由小写字母构成。现在,对于每一个位置 1i<n1 \leq i < n,Cocoly 需要你来判断字符串对 (s1s2si,si+1si+2sn)(s_1s_2 \ldots s_i, \, s_{i+1}s_{i+2} \ldots s_n) 是否美丽。

注意:由于数据量较大,输入输出需要进行优化,例如在 C++ 中,可以在 main 函数的开头加入以下代码,以提高效率:

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr); 
    std::cout.tie(nullptr);
}

输入格式

输入包含多个测试用例。第一行包含一个整数 TT1T1051 \leq T \leq 10^5),表示测试用例的数量。接下来是每个测试用例的具体描述。

每个测试用例的第一行是两个整数 nnmm2nm5×1062 \leq n \leq m \leq 5 \times 10^6),分别表示字符串 sstt 的长度。

接下来的两行中,第二行是长度为 nn 的字符串 ss,第三行是长度为 mm 的字符串 tt,这两个字符串均由小写字母组成。

保证所有测试用例中 mm 的总和不超过 10710^7

输出格式

对于每个测试用例,输出一个长度为 n1n-1 的二进制字符串 rr:每个 1i<n1 \leq i < n,如果第 ii 个字符串对是美丽的则 ri=1r_i=\texttt{1},否则 ri=0r_i=\texttt{0}。输出时不要每两位之间加空格。

输入输出样例

  • 输入#1

    7
    3 5
    aba
    ababa
    4 10
    czzz
    czzzzzczzz
    5 14
    dream
    dredreamamamam
    5 18
    tcccc
    tcctccccctccctcccc
    7 11
    abababc
    abababababc
    7 26
    aaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaa
    19 29
    bbbbbbbbbbbbbbbbbbb
    bbbbbbbbbbbbbbbbbbbbbbbbbbbbb

    输出#1

    11
    011
    0010
    0000
    010100
    111111
    110010001100010011

说明/提示

举例来说,第一个测试用例中,s=abas = \tt abat=ababat = \tt ababa

  • i=1i = 1:Cocoly 可以将 tt 分割为 a+ba+ba\texttt{a} + \texttt{ba} + \texttt{ba},因此字符串对 (a,ba)(\texttt{a}, \texttt{ba}) 是美丽的。
  • i=2i = 2:Cocoly 可以将 tt 分割为 ab+ab+a\texttt{ab} + \texttt{ab} + \texttt{a},因此字符串对 (ab,a)(\texttt{ab}, \texttt{a}) 也是美丽的。

在第二个测试用例中,s=czzzs = \tt czzzt=czzzzzczzzt = \tt czzzzzczzz

  • i=1i = 1:可以证明无法通过字符串 c\texttt{c}zzz\texttt{zzz}tt 进行美丽的分割。
  • i=2i = 2:Cocoly 可以将 tt 分割为 cz+zz+zz+cz+zz\texttt{cz} + \texttt{zz} + \texttt{zz} + \texttt{cz} + \texttt{zz}
  • i=3i = 3:Cocoly 可以将 tt 分割为 czz+z+z+z+czz+z\texttt{czz} + \texttt{z} + \texttt{z} + \texttt{z} + \texttt{czz} + \texttt{z}
首页