#HT12704. 回文权

回文权

当前没有测试数据。

题目描述

给定一个长度为 nn 的小写字母字符串 ss。

对于字符串中的一个区间 [l,r][l,r],考虑所有满足 l≤x≤y≤rl \le x \le y \le r 且 sxsx+1⋯sys_x s_{x+1}\cdots s_y 为回文串的二元组 (x,y)(x,y)。定义该区间的回文权为这些回文子串长度之和:

$$\sum_{\substack{l\le x\le y\le r\\s[x..y]\text{为回文串}}} (y-x+1)$$

位置不同的两个子串即使内容相同,也分别计算贡献。

给出 qq 个区间询问,请求出每个区间的回文权。

输入格式

第一行一个长度为 nn 的小写字母字符串 ss。

第二行一个正整数 qq。

接下来 qq 行,每行两个整数 l,rl,r,表示一次询问。

输出格式

对每次询问输出一行一个整数,表示区间 [l,r][l,r] 的回文权。

样例

abacaba
4
1 7
2 6
3 5
4 4
28
13
6
1

样例解释 在区间 [1,7][1,7] 中,长度为 11 的回文子串贡献 77;三个长度为 33 的回文子串贡献 99;bacab\text{bacab} 贡献 55;abacaba\text{abacaba} 贡献 77,总和为 2828。

数据规模与约定

  • 1≤n,q≤2×1051 \le n,q \le 2\times 10^5;
  • ss 仅包含小写英文字母;
  • 1≤l≤r≤n1 \le l \le r \le n;

共 2020 个测试点,每个测试点 55 分。下表各行所列测试点共同满足对应的额外约束。

测试点编号 分值 额外约束
1∼21\sim 2 1010 n,q≤200n,q \le 200
3∼43\sim 4 n,q≤2000n,q \le 2000
5∼65\sim 6 ss 中所有字符相同
7∼87\sim 8 ss 不含长度大于 11 的回文子串
9∼109\sim 10 所有询问均为 [1,n][1,n]
11∼1311\sim 13 1515 ∑(r−l+1)≤107\sum (r-l+1) \le 10^7
14∼1614\sim 16 si≠si+1s_i \neq s_{i+1} 对所有 1≤i<n1\le i < n 成立
17∼2017\sim 20 2020 无额外约束

原题链接

原题链接