CF1943B.Non-Palindromic Substring
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
如果一个字符串 t 存在至少一个长度为 k 的子串 † 不是回文串 ‡,则称 t 是 k-good 的。令 f(t) 表示所有使得字符串 t 是 k-good 的 k 的和。
给定一个长度为 n 的字符串 s,你需要回答 q 个如下的查询:
- 给定 l 和 r(l<r),求 f(slsl+1…sr) 的值。
† 字符串 z 的子串是 z 中一段连续的字符。例如,"defor"、"code" 和 "o" 都是 "codeforces" 的子串,而 "codes" 和 "aaa" 不是。
‡ 回文串是指正着读和反着读都相同的字符串。例如,"z"、"aa" 和 "tacocat" 是回文串,而 "codeforces" 和 "ab" 不是。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 t(1≤t≤2⋅104)——表示测试用例的数量。每组测试用例的描述如下。
每组测试用例的第一行包含两个整数 n 和 q(2≤n≤2⋅105,1≤q≤2⋅105),分别表示字符串的长度和查询的数量。
第二行包含一个字符串 s。保证字符串 s 只包含小写英文字母。
接下来的 q 行,每行包含两个整数 l 和 r(1≤l<r≤n)。
保证所有测试用例中 n 的总和和 q 的总和都不超过 2⋅105。
输出格式
对于每个查询,输出 f(slsl+1…sr) 的值。
输入输出样例
输入#1
5 4 4 aaab 1 4 1 3 3 4 2 4 3 2 abc 1 3 1 2 5 4 pqpcc 1 5 4 5 1 3 2 4 2 1 aa 1 2 12 1 steponnopets 1 12
输出#1
9 0 2 5 5 2 14 0 2 5 0 65
说明/提示
在第一个测试用例的第一个查询中,字符串为 aaab。aaab、aab 和 ab 都是非回文子串,它们的长度分别为 4、3 和 2。因此,该字符串是 2-good、3-good 和 4-good。所以 f(aaab)=2+3+4=9。
在第一个测试用例的第二个查询中,字符串为 aaa。没有非回文子串,因此 f(aaa)=0。
在第二个测试用例的第一个查询中,字符串为 abc。ab、bc 和 abc 都是非回文子串,它们的长度分别为 2、2 和 3。因此,该字符串是 2-good 和 3-good。所以 f(abc)=2+3=5。注意,虽然长度为 2 的非回文子串有两个,但只计一次。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?