标签:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <string> 7 #include <vector> 8 #include <stack> 9 #include <queue> 10 #include <set> 11 #include <map> 12 #include <iomanip> 13 #include <cstdlib> 14 using namespace std; 15 const int INF=0x5fffffff; 16 const int MS=10005; 17 const double EXP=1e-8; 18 19 char str[MS][11]; 20 21 int cmp(const void *a,const void *b) 22 { 23 return strcmp((char *)a,(char *)b); 24 } 25 26 int main() 27 { 28 int T; 29 int n,i; 30 scanf("%d",&T); 31 while(T--) 32 { 33 scanf("%d",&n); 34 for(i=0;i<n;i++) 35 scanf("%s",str[i]); 36 //sort(str,str+n,cmp); 37 qsort(str,n,sizeof(str[0]),cmp); 38 int ok=1; 39 for(i=1;i<n&&ok;i++) 40 { 41 if(strncmp(str[i-1],str[i],strlen(str[i-1]))==0) 42 ok=0; 43 } 44 if(ok) 45 puts("YES"); 46 else 47 puts("NO"); 48 } 49 return 0; 50 }
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <string> 7 #include <vector> 8 #include <stack> 9 #include <queue> 10 #include <set> 11 #include <map> 12 #include <iomanip> 13 #include <cstdlib> 14 using namespace std; 15 const int INF=0x5fffffff; 16 const int MS=100005; 17 const double EXP=1e-8; 18 19 struct node 20 { 21 bool have; 22 node * next[10]; 23 }nodes[MS]; 24 node *root; 25 bool flag; 26 int cnt; 27 node * add_node(int c) 28 { 29 node *p=&nodes[c]; 30 for(int i=0;i<10;i++) 31 p->next[i]=NULL; 32 p->have=false; 33 return p; 34 } 35 void insert(char *str) 36 { 37 node *p=root,*q; 38 int len=strlen(str); 39 for(int i=0;i<len;i++) 40 { 41 int id=str[i]-‘0‘; 42 if(p->next[id]==NULL) 43 { 44 q=add_node(cnt++); 45 p->next[id]=q; 46 } 47 // if(p->have==true) 48 // flag=true; 49 p=p->next[id]; 50 if(p->have==true) 51 flag=true; 52 } 53 p->have=true; 54 for(int i=0;i<10;i++) 55 { 56 if(p->next[i]!=NULL) 57 { 58 flag=true; 59 break; 60 } 61 } 62 } 63 int main() 64 { 65 int i,n,t; 66 char str[15]; 67 scanf("%d",&t); 68 while(t--) 69 { 70 cnt=0; 71 root=add_node(cnt++); 72 flag=false; 73 scanf("%d",&n); 74 for(i=0;i<n;i++) 75 { 76 scanf("%s",str); 77 if(!flag) 78 { 79 insert(str); 80 } 81 } 82 if(flag==false) 83 printf("YES\n"); 84 else 85 printf("NO\n"); 86 } 87 return 0; 88 }
标签:
原文地址:http://www.cnblogs.com/767355675hutaishi/p/4304351.html