#CF932G. 回文式分割

回文式分割

回文式分割

  • 时间限制:3 秒
  • 内存限制:256 MiB

题目描述

给定一个字符串 ss。你需要把它分割成偶数个非空连续子串 (p1,p2,…,pk)(p_1,p_2,\ldots,p_k),并满足

pi=pk−i+1(1≤i≤k).p_i=p_{k-i+1}\qquad(1\le i\le k).

求满足条件的分割方案数,答案对 109+710^9+7 取模。两个方案只要存在一个切分位置不同,就视为不同方案。

输入格式

输入仅一行一个字符串 ss。保证 ss 的长度为偶数,且只包含小写拉丁字母。

输出格式

输出一个整数,表示合法分割方案数对 109+710^9+7 取模的结果。

样例输入 1

abcdcdab

样例输出 1

1

样例输入 2

abbababababbab

样例输出 2

3

数据范围

记 nn 为字符串长度。对于所有数据,2≤n≤1062\le n\le10^6,nn 为偶数。

子任务编号 分值 特殊限制
1 20 n≤200n\le200
2 40 n≤5000n\le5000
3 无特殊限制