您的位置:首页 > 其它

hdu 1251 统计拼图

2015-09-27 08:24 246 查看
二手tire木;

Basic应用程序

谈到很具体的 点击打开链接

#include<cstdio>
#include<cstring>
#include<iostream>
#define max 20
using namespace std;
char  w[6];
struct node{
bool a;
int chile[26];
int q;//前缀出现次数
node(){
q=false;
q=0;
memset(chile,0,sizeof(chile));
}
}t[500000];

int sz=1;
void insert(char *w)
{
int len=strlen(w);
int s=0;
for(int i=0;i<len;i++)
{
int y=w[i]-'a';
if(t[s].chile[y]==0)
{
t[s].chile[y]=sz++;
}
s=t[s].chile[y];//下一个结点
t[s].q++;
}
t[s].a=1;
}

int show(char *w)
{
int len=strlen(w);
int s=0;
for(int i=0;i<len;i++)
{
int y=w[i]-'a';
if(t[s].chile[y]==0)
return 0;
s=t[s].chile[y];
}
return t[s].q;
}
int main()
{
char s[50];
while(gets(s))
{
int len=strlen(s);
if(len==0) break;
insert(s);
}
while(gets(s))
{
printf("%d\n",show(s));
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: