唐納德與子串 Easy (計算子串個數)

2021-08-13 05:42:28 字數 977 閱讀 5053

time limit per test: 1.0 seconds

memory limit: 256 megabytes

子串的定義是在乙個字串中連續出現的一段字元。這裡,我們使用 s[l…r] 來表示 s 字串從 l 到 r(閉區間)的子串。在本題中,字串下標從 0 開始。顯然,對於長度為 n 的字串共有 n(n+1)2 個子串。

對於乙個給定的字串 s,唐納德給出 q 次詢問,第 i 次詢問包括三個引數 li,ri,zi,問在 s[li…ri] 的所有子串中共有多少個恰好為 zi。

input

輸入具有如下形式:

sql1 r1 z1l2 r2 z2⋮lq rq zq

第一行乙個字串 s。

第二行乙個整數 q。

接下來每行:首先兩個整數 li,ri (0≤li≤ri<|s|),然後是乙個非空字串 zi。整數和整數,整數和字串間以單空格隔開。

字串中只會出現 26 個小寫英文本母。

資料規模約定:

對於 easy 檔:1≤|s|≤100,q≤∑|zi|≤100。

對於 hard 檔:1≤|s|≤105,q≤∑|zi|≤105。

output

對於每次詢問,輸出乙個整數,表示答案。

examples

input

thisisagarbagecompetitionhahaha

5 0 30 a

1 5 is

25 30 hah

6 12 ag

7 12 ag

output

6 2

2 2

1

#include 

#include

#include

using

namespace

std;

int main()

cout

0;}

EOJ 3441 唐納德與子串 Easy

description submit statistics discussion time limit per test 1.0 seconds memory limit 256 megabytes 子串的定義是在乙個字串中連續出現的一段字元。這裡,我們使用 s l r 來表示 s 字串從 l 到 ...

1149 子串計算

1149 子串計算.cpp 定義控制台應用程式的入口點。題目1149 子串計算 時間限制 1 秒記憶體限制 32 兆特殊判題 否提交 1121解決 644 題目描述 給出乙個01字串 長度不超過100 求其每乙個子串出現的次數。輸入 輸入包含多行,每行乙個字串。輸出 對每個字串,輸出它所有出現次數在...

10A 子串計算

總時間限制 1000ms 記憶體限制 65536kb 描述給出乙個只包含0和1的字串 長度在1到100之間 求其每乙個子串出現的次數。輸入一行,乙個01字串。輸出對所有出現次數在1次以上的子串,輸出該子串及出現次數,中間用單個空格隔開。按子串的字典序從小到大依次輸出,每行乙個。樣例輸入 10101樣...