hdu3336一样的题目
kmp+dp可以做.
队友的思路,开一个数组记录与前一个字符相等的下表,
每次只需比较与上个字符相等下表+1的字符是否相等
#include<stdio.h>
#include<string.h>
int a[100001];
int main()
{
int i,j,k,p,len;
char s[100001];
while(scanf("%s",s)!=-1)
{
len=strlen(s);
int sum=len;
j=0;
for(i=1;s[i];i++)
if(s[i]==s[0])
a[j++]=i;
sum+=j;
for(i=1;s[i];i++)
{
for(p=0,k=0;k<j&&k+1<len;k++)
if(s[a[k]+1]==s[i])
a[p++]=a[k]+1;
......
阅读全文