题目链接
解题方法:DP
题目分析
题目
Description
Cyw有一个长度为n的字符串s(字符串只包小写字母)。现在有一些询问,对于给定的区间l,r,他想知道在区间[l,r]中共有多少个回文子串。(字符串下标从1开始,n≤1000)
Input
第一行有一个整数T(T≤30),表示数据组数。
接下来有T组数据。
对于每一组数据,第一行输入字符串s,第二行输入一个整数q(q≤1000000),表示询问次数。接下来q行,每行两个整数li,ri,表示询问的区间为[li,ri]。保证询问数据合法(1≤li≤ri≤n)
Output
输出有q行,每行只有一个整数,表示每个询问的结果。
Sample Input
1 caaaba 5 1 1 1 4 2 3 4 6 4 5
Sample Output
1 7 3 4 2
解析
本题使用了两次DP,一个是处理回文串的时候使用了一次,一个是遍历下标的时候使用了一次,查询的时候效率是o(1)。感觉这题难度不错,适合DP入门。
代码
1 |
|