不晓得字典树的问题怎么跑到动态规划上了。。。
裸字典树,传递当前字典路上的数量
#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;}
}