#21791. 羊腿出售
羊腿出售
说明
蒟蒻队长自从上回修好了羊腿复制器以后,家里的羊腿多到快放不下啦!于是他决定拿出一部分出来卖,这里为了方便出售,蒟蒻队长将所有羊腿分了 $26$ 个等级,用 $26$ 个小写字母表示
现在蒟蒻队长一共拿出了 $n$ 只羊腿,编号分别为 $1 \sim n$,并且每只羊腿的品质等级为 $a_i$
在正式售卖之前,小菜菜决定考考蒟蒻队长能否快速做出反应,来提高出售效率
小菜菜将会提出 $m$ 次问题,每次询问会指向一段连续编号的羊腿,要求蒟蒻队长从中选出两只对应品质的羊腿
现在蒟蒻队长决定给小菜菜秀一把,他不但能快速拿出这两只羊腿,还能立刻告诉小菜菜他有多少种不同的选法能满足这两只羊腿,甚至选出的两只羊腿的相对顺序都是按照小菜菜的要求!
也就是说如果有这样的 $9$ 只羊腿,品质分别为 `aaabbbccc`
现在小菜菜给出的问题是在 $[2,5]$,即 `aabb` 中选出 `ab` 两只羊腿
则蒟蒻队长会给出 $4$ 种不同的方案:$(2,4),(2,5),(3,4),(3,5)$
如果小菜菜给出的询问是在 $[1,3]$,即 `aaa` 中选出 `aa` 两只羊腿
则蒟蒻队长会给出 $3$ 种不同的方案:$(1,2),(1,3),(2,3)$
现在小菜菜想知道,对于他提出的每一个询问正确答案应该是多少,以此来验证蒟蒻队长的答案是否正确
输入格式
输入第一行包含两个整数 $n,m$ 表示有 $n$ 只羊腿和小菜菜会提出 $m$ 次问题第二行包含一个长度为 $n$ 的字符串 $a$,分别表示 $n$ 只羊腿的品质
接下来 $m$ 行,每行包含两个整数 $l,r$ 和一个长度为 $2$ 的字符串,表示小菜菜的一次提问
| 测试点编号 | $n$ | $m$ | 其他 |
|---|---|---|---|
| $1\sim 4$ | $\le 100$ | $\le 100$ | 无 |
| $5\sim 8$ | $\le 5000$ | $\le 5000$ | 无 |
| $9\sim 10$ | $\le 10^5$ | $\le 10^5$ | 所有的 $a_i$ 均相同 |
| $11\sim 12$ | $\le 10^5$ | $\le 3$ | 无 |
| $13\sim 16$ | $\le 10^5$ | $\le 10^5$ | 无 |
| $17\sim 20$ | $\le 2\times 10^5$ | $\le 2\times 10^5$ | 无 |
对于 $100\%$ 的数据,$1\le n,m \le 2\times 10^5,1\le l\le r\le n$,其中保证输入字符串只包含小写字母,且小菜菜提问的字符串长度一定为 $2$
输出格式
对于每一次提问输出一个正整数表示答案9 3
aaabbbccc
2 5 ab
1 3 aa
1 9 bc4
3
9