您的位置:首页 > 其它

字典树模板(hdu1251)

2015-08-16 10:16 507 查看
真是不爽。。特么水的不能再水的题,g++一直超内存,c++a了
#include <iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
char str[11];
struct Trie
{
Trie *child[26];
int num;
Trie()
{
num=0;
memset(child,NULL,sizeof(child));
}
};
Trie *root;
void Tree_Insert(char *str)
{
Trie *s=root;
int i=0;
while(str[i]!='\0')
{
int id=str[i]-'a';
if(s->child[id]==0)
s->child[id]= new Trie();
s=s->child[id];
s->num++;
i++;
}
}
int Tree_Find(char *str)
{
Trie *s=root;
int i=0;
while(str[i]!='\0')
{
int id=str[i]-'a';
if(s->child[id]==0)
return 0;
else
s=s->child[id];
i++;
}
return s->num;
}
int main()
{
int i,j;
root=new Trie();
while(gets(str)&&str[0]!='\0')
Tree_Insert(str);
while(scanf("%s",str)!=EOF)
printf("%d\n",Tree_Find(str));
return 0;
}


超内存,c++就ac了。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: