F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

La Vie en rose

Time Limit: 7000/3500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 4063    Accepted Submission(s): 1055


Problem Description
Professor Zhang would like to solve the multiple pattern matching problem, but he only has only one pattern string $p=p_{1}p_{2}...p_{m}$. So, he wants to generate as many as possible pattern strings from $p$ using the following method:

1. select some indices $i_1,i_2,...,i_k$ such that $1 \le i_1 < i_2 < ... < i_k <|p|$ and $|i_j-i_{j+1}| > 1$ for all $1 \le j < k$.
2. swap $p_{i_j}$ and $p_{i_j+1}$ for all $1 \le j \le k$.

Now, for a given a string $s=s_{1}s_{2}...s_{n}$, Professor Zhang wants to find all occurrences of all the generated patterns in $s$.
 

Input
There are multiple test cases. The first line of input contains an integer $T$, indicating the number of test cases. For each test case:

The first line contains two integers $n$ and $m$ $(1 \le n \le 10^5, 1 \le m \le \min\{5000, n\})$ -- the length of $s$ and $p$.

The second line contains the string $s$ and the third line contains the string $p$. Both the strings consist of only lowercase English letters.
 

Output
For each test case, output a binary string of length $n$. The $i$-th character is "1" if and only if the substring $s_{i}s_{i+1}...s_{i+m-1}$ is one of the generated patterns.
 

Sample Input
3 4 1 abac a 4 2 aaaa aa 9 3 abcbacacb abc
 

Sample Output
1010 1110 100100100
 

Author
zimpha
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-06-26 20:19:15, Gzip enabled