每日模板一練——Trie樹
阿新 • • 發佈:2018-12-15
POJ3630
又是YES和NO,判反了判反了。。。。。再這樣我就女裝了!
#include<bits/stdc++.h> using namespace std; const int N=5e5+10; struct T{ int son[10]; int num; }trie[N]; int tot; char str[100]; int flag=0; void insert() { int pos=0; int len=strlen(str); for(int i=0;i<len;++i) { if(!trie[pos].son[str[i]-'0']) trie[pos].son[str[i]-'0']=++tot; pos=trie[pos].son[str[i]-'0']; if(trie[pos].num>0) flag=1; } trie[pos].num++; for(int i=0;i<10;i++) if(trie[pos].son[i]) flag=1; } int T,n; int main() { scanf("%d",&T); while(T--) { tot=0,flag=0; memset(trie,0,sizeof(trie)); scanf("%d",&n); for(int i=1;i<=n;++i) { scanf("%s",str); if(!flag) insert(); } if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }