int n; // 0为根节点 char a[MAX_N]; // a[0] = 0; int p[MAX_N][26]; inline void Insert(string s) { int now = 0, len = s.size(); for(register int i = 0; i < len; ++i) { if(p[now][s[i] - 'A']) now = p[now][s[i] - 'A']; else p[now][s[i] - 'A'] = ++n, now = n, a[n] = s[i]; } return; }