SPOJ没有账号,可否帮忙交一下trie模板? thx
#include<bits/stdc++.h>
#define inf 2147483647
using namespace std;
struct ikun{
int s[10];
bool end;
}trie[1000100];
int n,g;
bool ans;
void insert(char c[]){
if(ans)return;
int r=0;
for(int i=1;i<=strlen(c+1);i++){
int q=c[i]-'0';
if(!trie[r].s[q])
g++,trie[r].s[q]=g;
else if(i==strlen(c+1))
ans=1;
//要么他是前面某串的前缀
r=trie[r].s[q];
if(trie[r].end)
ans=1;
//要么前面有串是他的前缀
}
trie[r].end=1;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
ans=0,g=0;
memset(trie,0,sizeof(trie));
scanf("%d",&n);
for(int i=1;i<=n;i++){
char ch[100];
scanf("%s",ch+1);
insert(ch);
}
if(ans)printf("NO\n");
else printf("YES\n");
}
return 0;
}