La Vie en rose (模拟)

#include<bits/stdc++.h>
using namespace std;

const int maxn = 5e3 + 7;
const int maxm = 1e5 + 7;
int T, n, m;
char str1[maxm], str2[maxn];

int main(){
    scanf("%d",&T);
    while(T --){
        scanf("%d%d%s%s", &n, &m, str1, str2);
        for(int i = 0; i < n; i ++){
            bool flag = true;
            int k = 0;
            for(int j = i; j < i + m && flag; j ++){
                if(str1[j] == str2[k])
                    k ++;
                else if(str1[j] == str2[k + 1] && str1[j + 1] == str2[k]){
                    k += 2; j ++;
                }else flag = false;
            }
            printf("%c","01"[flag]);
        }
        printf("\n");
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/wethura/p/9783991.html
en
LA