[bzoj4567]背单词
#include<bits/stdc++.h> using namespace std; const int N=6e5+777; char s[N]; int p[N]; int chur[N][30]; int n,tot; void dfs(int l,int num){ if(l==strlen(s))return; int dot=chur[num][s[l]-97]; if(dot){ p[dot]++; dfs(l+1,dot); }else{ tot++; chur[num][s[l]-97]=tot; p[tot]=1; for(int i=l+1;i<strlen(s);i++){ chur[tot][s[i]-97]=tot+1; tot++; p[tot]=1; } } } int cmp=0; int st[N]; void dfs2(int num){ int } int main(){ ios::sync_with_stdio(0); freopen("p.in","r",stdin); freopen("p.out","w",stdout); cin>>n; for(int i=1;i<=n;i++){ cin>>s; dfs(0,0);} cout<<tot; return 0; }
戒骄戒躁