CF1334G.Substring Search

省选/NOI-

通过率:0%

时间限制:1.25s

内存限制:512MB

AC君温馨提醒

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

题目描述

You are given a permutation pp consisting of exactly 2626 integers from 11 to 2626 (since it is a permutation, each integer from 11 to 2626 occurs in pp exactly once) and two strings ss and tt consisting of lowercase Latin letters.

A substring t′t' of string tt is an occurence of string ss if the following conditions are met:

  1. ∣t′∣=∣s∣|t'| = |s|;
  2. for each i∈[1,∣s∣]i \in [1, |s|], either si=ti′s_i = t'_i, or pidx(si)=idx(ti′)p_{idx(s_i)} = idx(t'_i), where idx(c)idx(c) is the index of character cc in Latin alphabet (idx(a)=1idx(\text{a}) = 1, idx(b)=2idx(\text{b}) = 2, idx(z)=26idx(\text{z}) = 26).

For example, if p1=2p_1 = 2, p2=3p_2 = 3, p3=1p_3 = 1, s=abcs = \text{abc}, t=abcaabat = \text{abcaaba}, then three substrings of tt are occurences of ss (they are t′=abct' = \text{abc}, t′=bcat' = \text{bca} and t′=abat' = \text{aba}).

For each substring of tt having length equal to ∣s∣|s|, check if it is an occurence of ss.

给你一个由 11 到 2626 的整数构成的排列 pp(由于是排列,11 到 2626 中的每个整数在 pp 中恰好出现一次),以及两个仅包含小写拉丁字母的字符串 ss 和 tt。

字符串 tt 的一个子串 t′t' 被称为字符串 ss 的一个出现(occurrence),当且仅当满足以下条件:

  1. ∣t′∣=∣s∣|t'| = |s|;
  2. 对每个 i∈[1,∣s∣]i \in [1, |s|],要么 si=ti′s_i = t'_i,要么 pidx(si)=idx(ti′)p_{idx(s_i)} = idx(t'_i),其中 idx(c)idx(c) 表示字符 cc 在拉丁字母表中的位置(即 idx(a)=1idx(\text{a}) = 1,idx(b)=2idx(\text{b}) = 2,……,idx(z)=26idx(\text{z}) = 26)。

例如,若 p1=2p_1 = 2,p2=3p_2 = 3,p3=1p_3 = 1,s=abcs = \text{abc},t=abcaabat = \text{abcaaba},则 tt 中有三个长度为 ∣s∣|s| 的子串是 ss 的出现(它们分别是 t′=abct' = \text{abc}、t′=bcat' = \text{bca} 和 t′=abat' = \text{aba})。

对 tt 的每一个长度等于 ∣s∣|s| 的子串,判断其是否为 ss 的一个出现。

输入格式

The first line contains 2626 integers p1p_1, p2p_2, ..., p26p_{26} (1≤pi≤261 \le p_i \le 26, all these integers are pairwise distinct).

The second line contains one string ss, and the third line contains one string tt (2≤∣s∣≤∣t∣≤2⋅1052 \le |s| \le |t| \le 2 \cdot 10^5) both consisting of lowercase Latin letters.

第一行包含 2626 个整数 p1p_1, p2p_2, ..., p26p_{26}(1≤pi≤261 \le p_i \le 26,且这些整数两两互不相同)。

第二行包含一个字符串 ss,第三行包含一个字符串 tt(2≤∣s∣≤∣t∣≤2⋅1052 \le |s| \le |t| \le 2 \cdot 10^5),二者均由小写拉丁字母组成。

输出格式

Print a string of ∣t∣−∣s∣+1|t| - |s| + 1 characters, each character should be either 0 or 1. The ii-th character should be 1 if and only if the substring of tt starting with the ii-th character and ending with the (i+∣s∣−1)(i + |s| - 1)-th character (inclusive) is an occurence of ss.

输出一个长度为 ∣t∣−∣s∣+1|t| - |s| + 1 的字符串,其中每个字符只能是 0 或 1。当且仅当 tt 中从第 ii 个字符开始、到第 (i+∣s∣−1)(i + |s| - 1) 个字符(含)结束的子串等于 ss 时,该字符串的第 ii 个字符为 1。

输入输出样例

  • 输入#1

    2 3 1 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
    abc
    abcaaba

    输出#1

    11001

输入解题思路,AI测评打分。不知道怎么写?

首页