Light OJ 1129 (Tire树)

来源:互联网 发布:感恩知报的反义词 编辑:程序博客网 时间:2024/05/16 08:32


 Light OJ 1129

详细: view

#include<cstdio>#include<cstring>using namespace std;bool ok;int ch[100010][10];int val[100010];int ord;char ss[10005][15];void  init(){                  memset(ch[0],0,sizeof(ch[0]));                  ord=1;                  memset(val,0,sizeof(val));                  ok=1;}inline int id(char c){                  return c-'0';}void _insert(char s[]){                  int u=0,len=strlen(s);                  for(int i=0;i<len;i++)                  {                           int j=id(s[i]);                           if(!ch[u][j]){                                    memset(ch[ord],0,sizeof(ch[ord]));                                    val[ord]=0;                                    ch[u][j]=ord++;                           }                           u=ch[u][j];                           if(val[u]) ok=0;                  }                  val[u]=1;}bool work1(int n){                  init();                  for(int i=0;i<n;i++){                           if(!ok) continue;                           _insert(ss[i]);                  }                  return ok;}bool work2(int n){                  init();                  for(int i=n-1;i>=0;i--){                           if(!ok) continue;                           _insert(ss[i]);                  }                  return ok;}int main(){         //freopen("in.txt","r",stdin);         int T,ca=0;         scanf("%d",&T);         while(T--){                  int n;                  scanf("%d",&n);                  for(int i=0;i<n;i++)                           scanf("%s",ss[i]);                  printf("Case %d: ",++ca);                  if(work1(n)&&work2(n)) puts("YES");                  else puts("NO");         }         return 0;}


0 0
原创粉丝点击