DTOJ3493 加帕里图书馆

题目

题目描述

博士经常阅读图书馆里的书籍。有一天,她在书中看到了一个长长的只由小写字母组成的字符串 S S S
博士发现这个串有很多子序列都是回文串,非常优美,于是便列出了这个串的所有非空回文子序列
可是,博士忽然发现,她列出了很多相同的回文串
博士想知道,如果她只想把每种重复的串保留一个,一共需要从她的列表中移除多少回文串?
子序列 S S S的一个子序列可以用一个数组 p p p表示,构成的子序列为 S p 1 S p 2 ⋯ ⋯ S p m S_{p_1}S_{p_2} \cdots \cdots S_{p_m} Sp1Sp2Spm,其中 m m m为该子序列的长度
满足 0 < p 1 < p 2 < ⋯ ⋯ < p m ⩽ ∣ S ∣ 0 < p_1 < p_2 < \cdots \cdots < p_m \leqslant |S| 0<p1<p2<<pmS

输入格式

一行一个非空字符串 S S S

输出格式

输出一行一个整数,表示博士一共需要移除多少重复的回文串。由于答案可能很大,请对 1 0 9 + 7 10^9+7 109+7取模

样例

样例输入1

bccb

样例输出1

3

样例输入2

abcdabcdabcdabcdabcdabcdabcdabcddcbadcbadcbadcbadcbadcbadcbadcba

样例输出2

679266098

数据范围与提示

样例1解释

对于第一组样例,非空子序列一共有:
{ b , c , c , b , b c , b c , b b , c c , c b , c b , b c c , b c b , b c b , c c b , b c c b } \{b,c,c,b,bc,bc,bb,cc,cb,cb,bcc,bcb,bcb,ccb,bccb\} { b,c,c,b,bc,bc,bb,cc,cb,cb,bcc,bcb,bcb,ccb,bccb}
其中回文子序列有:
{ b , c , c , b , b b , c c , b c b , b c b , b c c b } \{b,c,c,b,bb,cc,bcb,bcb,bccb\} { b,c,c,b,bb,cc,bcb,bcb,bccb}
需要删去 3 3 3个重复的回文子序列

数据范围

对于 30 % 30 \% 30%的数据, ∣ S ∣ ⩽ 20 |S| \leqslant 20 S20
对于 60 % 60 \% 60%的数据, ∣ S ∣ ⩽ 100 |S| \leqslant 100 S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值