#L6074. 「2017 山东一轮集训 Day6」子序列

「2017 山东一轮集训 Day6」子序列

「2017 山东一轮集训 Day6」子序列

传统 1500 ms 512 MiB

305305 通过 644644 提交

题目描述

给定一个长度为 nn 的只包含前 99 个小写字母的字符串 ssqq 个询问 l,rl,r,询问 s[lr]s[l \ldots r] 中有多少本质不同的子序列。答案对 109+710^9 + 7 取模。

s[lr]s[l \ldots r] 的子序列 {p1,p2,,pk}\{ p_1, p_2, \cdots, p_k \} 需要满足:lp1<p2<<pkrl \leq p_1 < p_2 < \cdots < p_k \leq r

两个子序列 p,qp, q 是本质不同的,当且仅当其长度不同,或存在一个 ii,满足 s[pi]s[qi]s[p_i] \neq s[q_i]

输入格式

第一行一个字符串 ss

第二行一个整数 qq

接下来 qq 行描述一个询问 li,ril_i, r_i

输出格式

输出 qq 行,依次表示每个询问的答案。

样例

输入

bacbbab
3
4 6
1 7
1 3

输出

5
68
7

数据范围与提示

对于 20%20\% 的数据,n20n \leq 20
对于 40%40\% 的数据,n1000n \leq 1000
对于 60%60\% 的数据,n10000n \leq 10000
对于 100%100\% 的数据,1n,q1000001 \leq n, q \leq 1000001lrn1 \leq l \leq r \leq n