不晓得字典树的问题怎么跑到动态规划上了。。。
裸字典树,传递当前字典路上的数量
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#define maxn 51*10000
using namespace std;
struct list
{
int id;
int num;
struct list *next[27];
}*root;
int maxx;
struct list *creat()
{
int i;
struct list *p;
p=new list;
p->id=0;
p->num=0;
for(i=0;i<27;i++)
{
p->next[i]=0;
}
return p;
}
void dos(char str[])
{
int mn;
mn=0;
struct list *p;
p=root;
int n,j;
n=strlen(str);
for(j=0;j<n;j++)
{
int c=str[j]-'a';
if(p->next[c]==NULL)
{
p->next[c]=creat();
}
p=p->next[c];
mn=max(mn,p->num);
}
p->num=mn+1;
maxx=max(maxx,mn+1);
}
int main()
{
int n,i;
char str[101];
while(~scanf("%d",&n))
{
maxx=0;
root=creat();
for(i=0;i<n;i++)
{
scanf("%s",str);
dos(str);
}
cout<<maxx<<endl;
}
}