[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;
}
View Code
戒骄戒躁
原文地址:https://www.cnblogs.com/lxzl/p/10961448.html