CF1016B.Segment Occurrences

普及-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given two strings ss and tt, both consisting only of lowercase Latin letters.

The substring s[l..r]s[l..r] is the string which is obtained by taking characters sl,sl+1,…,srs_l, s_{l + 1}, \dots, s_r without changing the order.

Each of the occurrences of string aa in a string bb is a position ii (1≤i≤∣b∣−∣a∣+11 \le i \le |b| - |a| + 1) such that b[i..i+∣a∣−1]=ab[i..i + |a| - 1] = a (∣a∣|a| is the length of string aa).

You are asked qq queries: for the ii-th query you are required to calculate the number of occurrences of string tt in a substring s[li..ri]s[l_i..r_i].

给你两个字符串 ss 和 tt,它们均由小写拉丁字母组成。

子串 s[l..r]s[l..r] 是指按顺序取出字符 sl,sl+1,…,srs_l, s_{l + 1}, \dots, s_r 所构成的字符串。

字符串 aa 在字符串 bb 中的每一次出现,是指一个位置 ii(满足 1≤i≤∣b∣−∣a∣+11 \le i \le |b| - |a| + 1),使得 b[i..i+∣a∣−1]=ab[i..i + |a| - 1] = a(其中 ∣a∣|a| 表示字符串 aa 的长度)。

你需要处理 qq 个查询:对于第 ii 个查询,你需要计算字符串 tt 在子串 s[li..ri]s[l_i..r_i] 中的出现次数。

输入格式

The first line contains three integer numbers nn, mm and qq (1≤n,m≤1031 \le n, m \le 10^3, 1≤q≤1051 \le q \le 10^5) — the length of string ss, the length of string tt and the number of queries, respectively.

The second line is a string ss (∣s∣=n|s| = n), consisting only of lowercase Latin letters.

The third line is a string tt (∣t∣=m|t| = m), consisting only of lowercase Latin letters.

Each of the next qq lines contains two integer numbers lil_i and rir_i (1≤li≤ri≤n1 \le l_i \le r_i \le n) — the arguments for the ii-th query.

第一行包含三个整数 nn、mm 和 qq(1≤n,m≤1031 \le n, m \le 10^3,1≤q≤1051 \le q \le 10^5),分别表示字符串 ss 的长度、字符串 tt 的长度以及查询次数。

第二行是一个字符串 ss(∣s∣=n|s| = n),仅由小写拉丁字母组成。

第三行是一个字符串 tt(∣t∣=m|t| = m),仅由小写拉丁字母组成。

接下来的 qq 行中,每行包含两个整数 lil_i 和 rir_i(1≤li≤ri≤n1 \le l_i \le r_i \le n),表示第 ii 次查询的参数。

输出格式

Print qq lines — the ii-th line should contain the answer to the ii-th query, that is the number of occurrences of string tt in a substring s[li..ri]s[l_i..r_i].

输出 qq 行——第 ii 行应包含第 ii 个查询的答案,即字符串 tt 在子串 s[li..ri]s[l_i..r_i] 中出现的次数。

输入输出样例

  • 输入#1

    10 3 4
    codeforces
    for
    1 3
    3 10
    5 6
    5 7

    输出#1

    0
    1
    0
    1
  • 输入#2

    15 2 3
    abacabadabacaba
    ba
    1 15
    3 4
    2 14

    输出#2

    4
    0
    3
  • 输入#3

    3 5 2
    aaa
    baaab
    1 3
    1 1

    输出#3

    0
    0

说明/提示

In the first example the queries are substrings: "cod", "deforces", "fo" and "for", respectively.

在第一个例子中,查询字符串分别是子串:“cod”、“deforces”、“fo”和“for”。

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

首页