luogu#P9393. 紫丁香

紫丁香

题目描述

对于一个字符串 AA,记 AiA_i 表示它的第 ii 个字符。

SS 是任意长度为 mm0101 串。我们有 nn 个操作,第 ii 个操作可以表示成一个定义域和值域都是长度为 mm0101 串集合的函数 fif_i,表示经过这次操作后 SS 会变成 fi(S)f_i(S)。而函数 fif_i 可以由一个长度为 mm 的串 TiT_i 表示,TiT_i0,1,-\texttt{0,1,-} 三种字符组成,其中:

  • Ti,j=0T_{i,j}=\texttt{0} 表示 [fi(S)]j=0[f_i(S)]_j=\texttt{0}

  • Ti,j=1T_{i,j}=\texttt{1} 表示 [fi(S)]j=1[f_i(S)]_j=\texttt{1}

  • Ti,j=-T_{i,j}=\texttt{-} 表示 [fi(S)]j=Sj[f_i(S)]_j=S_j

也就是说,每个操作会将 SS 的一些位赋值为 00,一些位赋值为 11,还有一些位不变。

现在有 qq 次操作,每次操作给定一个长度为 mm0101SS,你可以对它做任意多次操作,操作的顺序任意,一个操作可以做多次。得到的串 SS' 可以被看做一个二进制数,求对应二进制数最大的 SS'

输入格式

第一行:三个整数 m,n,qm,n,q

接下来 nn 行:每行一个长度为 mm 的串 TT,表示一种操作。

接下来 qq 行:每行一个长度为 mm 的串 SS,表示一个询问。

输出格式

输出 qq 行:每行一个长度为 mm 的串,依次表示每个询问的答案。

5 3 3
-1-01
011-0
--010
00000
10010
00101

01110
11010
01110

提示

【样例解释】

对于第一个询问串 00000\texttt{00000},可以依次进行操作 3,23,2,得到最优的 SS'

$$\texttt{00000}\to \texttt{00010}\to \texttt{01110} $$

对于第二个询问串 10010\texttt{10010},可以依次进行操作 1,31,3,得到最优的 SS'

$$\texttt{10010}\to \texttt{11001}\to \texttt{11010} $$

对于第三个询问串 00101\texttt{00101},可以依次进行操作 3,23,2,得到最优的 SS'

$$\texttt{00101}\to \texttt{00010}\to \texttt{01110} $$

【数据范围】

对于全部数据:1m221\leq m\leq 221n,q1051\leq n,q\leq 10^5TT 仅包含 0,1,-\texttt{0,1,-} 三种字符,SS 仅包含 0,1\texttt{0,1} 两种字符。

子任务编号 mm\leq nn\leq qq\leq 特殊性质 分值
Subtask 1\text{Subtask 1} 1010 10001000 11 1010
Subtask 2\text{Subtask 2} 10001000 2020
Subtask 3\text{Subtask 3} 2020 10510^5 TT 中没有 -\texttt{-} 1010
Subtask 4\text{Subtask 4} 1818 1000010000 1010 1818
Subtask 5\text{Subtask 5} 2020 10510^5
Subtask 6\text{Subtask 6} 2222 10510^5 2424