CF1703D.Double Strings

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

Double Strings

题目描述

给定 nn 个字符串 s1,s2,,sns_1, s_2, \dots, s_n,每个字符串的长度不超过 88

对于每个字符串 sis_i,判断是否存在两个字符串 sjs_jsks_k,使得 si=sj+sks_i = s_j + s_k,即 sis_isjs_jsks_k 的拼接。注意,jj 可以等于 kk

回忆一下,字符串 sstt 的拼接定义为 s+t=s1s2spt1t2tqs + t = s_1 s_2 \dots s_p t_1 t_2 \dots t_q,其中 ppqq 分别是 sstt 的长度。例如,"code" 和 "forces" 的拼接是 "codeforces"。

输入格式

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

每个测试用例的第一行包含一个整数 nn1n1051 \leq n \leq 10^5),表示字符串的数量。

接下来 nn 行,每行一个非空字符串 sis_i,长度不超过 88,仅包含小写英文字母。给定的 nn 个字符串中可能有重复。

所有测试用例中 nn 的总和不超过 10510^5

输出格式

对于每个测试用例,输出一个长度为 nn 的二进制字符串。第 ii 位为 1\texttt{1} 表示存在 sjs_jsks_k 使得 si=sj+sks_i = s_j + s_k,否则为 0\texttt{0}。注意,jj 可以等于 kk

说明/提示

在第一个测试用例中,有如下情况:

  • s1=s2+s2s_1 = s_2 + s_2,因为 abab=ab+ab\texttt{abab} = \texttt{ab} + \texttt{ab}。注意 jj 可以等于 kk
  • s2s_2 不是列表中任意两个字符串的拼接。
  • s3=s2+s5s_3 = s_2 + s_5,因为 abc=ab+c\texttt{abc} = \texttt{ab} + \texttt{c}
  • s4s_4 不是列表中任意两个字符串的拼接。
  • s5s_5 不是列表中任意两个字符串的拼接。

因此,只有 s1s_1s3s_3 满足条件,所以答案为 10100\texttt{10100}

由 ChatGPT 4.1 翻译

样例

3
5
abab
ab
abc
abacb
c
3
x
xx
xxx
8
codeforc
es
codes
cod
forc
forces
e
code
10100
011
10100101

在线编程 IDE

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