URAL 1960- Palindromes and Super Abilities (回文树)

URAL 1960- Palindromes and Super Abilities (回文树)_第1张图片

题意:按照题目给的字符串的顺序,每次添加一个字符,问你当前本质不同的回文串有多少个?

题解:回文数模板题,学了一发大佬的模板:http://blog.csdn.net/u013368721/article/details/42100363

#include 
#include 
#include 
#include 
#include 
using namespace std;
const int maxn = 100005;
const int N = 26;
struct Palindromic_Tree 
{
	int next[maxn][N];
	int fail[maxn],cnt[maxn];
	int len[maxn],S[maxn];
	int last,p,n;
	int newnode(int x)
	{  
		for(int i=0;i=0;i--)
			cnt[fail[i]]+=cnt[i];
	}
};
Palindromic_Tree T;
char s[maxn];
int n;
void solve()
{
	int ans=0;
	T.init();
	n=strlen(s);
	for(int i=0;i



你可能感兴趣的:(回文树)