POJ3630WA

来源:互联网 发布:成都知美术馆开放时间 编辑:程序博客网 时间:2024/06/08 01:32
#include"iostream"// TLE 动态建树超时#include"algorithm"#include"vector"#include"map"#include"string"#include"cstring"#include"deque"#include"queue"#include"stack"#include"cstdio"#include"ctype.h"#include"cmath"#include"set"#include"sstream"using namespace std;const int maxn=10000+12;struct node{node *next[10];bool end;node(){memset(next,0,sizeof(next));end=false;}};void insert(node*root,char *s){int i=0;int k=0;node *p=root;for(i=0;s[i];i++){k=s[i]-'0';if(!p->next[k])p->next[k]=new node();p=p->next[k];}p->end=true;}bool search(node *root,char *s){int i=0;int k=0;node *p=root;for(i=0;s[i];i++){k=s[i]-'0';p=p->next[k];if(!p)return false;}return p->end;}int main(){//freopen("a.txt","r",stdin);int t;cin>>t;while(t--){int n;scanf("%d",&n);node *root=new node();char str[maxn][15];char str1[15];int i;int flag=1;for(i=0;i<n;i++){scanf("%s",str[i]);insert(root,str[i]);}for(i=0;i<n&&flag;i++){int len=strlen(str[i]);for(int j=1;j<len;j++){strncpy(str1,str[i],j);str1[j]='\0';if(search(root,str1))//如果前缀在树中已经出现过说明这个号码是有问题的{flag=0;}}}if(flag)cout<<"YES\n";else cout<<"NO\n";}return 0;}   

0 0