hdu 1247 Hat's words

来源:互联网 发布:js new构建对象的本质 编辑:程序博客网 时间:2024/05/16 00:57

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1247


/*  对每一个单词进行暴力查找.....
*/#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define M 1000000char s[50100][20];struct{    int next[26];    int num;    void init()    {        num=0;        memset(next,0,sizeof(next));    }}root[M*4];int up;void insert(char *s){    int i,p=0,id;    for(i=0;i<strlen(s);i++)    {        id=s[i]-'a';        if(root[p].next[id]==0)        {            root[p].next[id]=up;            root[up].init();            //root[p].num=1;            up++;            p=root[p].next[id];        }        else        {            p=root[p].next[id];        }    }    root[p].num=1;}int query(char *s,int a,int b){    int i,p=0,id;    for(i=a;i<b;i++)    {        id=s[i]-'a';        if(root[p].next[id]==0)        return 0;        else        p=root[p].next[id];    }    if(root[p].num)    return 1;    else    return 0;}int main(){  up=1;  int i=0;  root[0].init();  while(scanf("%s",s[i])!=EOF)  {      insert(s[i]);      i++;  }  int j;  for(j=0;j<i;j++)  {      int l=strlen(s[j]);      for(int k=0;k<l-1;k++)//够暴力!      if(query(s[j],0,k)&&query(s[j],k,l))      {          printf("%s\n",s[j]);          break;      }  }  return 0;}