首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

【统计偏题】 hdu1251

2013-01-27 
【统计难题】 hdu1251看了这个题目,统计难题,但一读题,原来是个关于Trie字典树的运用,完全是根据Trie算法,是

【统计难题】 hdu1251

看了这个题目,统计难题,但一读题,原来是个关于Trie字典树的运用,完全是根据Trie算法,是一个模版题。


#include <iostream>#include <string.h>using namespace std;const  int sonsum=26,base='a';char s1[12],ss[12];struct Trie{int num;bool flag;struct Trie *son[sonsum];Trie(){num=1;flag=false;memset(son,NULL,sizeof(son));}};Trie *NewTrie(){Trie *temp=new Trie;return temp;}void Inset(Trie *root,char *s){Trie *temp=root;while(*s){if(temp->son[*s-base]==NULL){temp->son[*s-base]=NewTrie();}else    temp->son[*s-base]->num++;        temp=temp->son[*s-base];        s++;}temp->flag=true;}int search(Trie *root,char *s){Trie *temp=root;while(*s){if(temp->son[*s-base]==NULL) return 0;temp=temp->son[*s-base];s++;}return temp->num;}int main(){Trie *root=NewTrie();root->num=0;//while(cin.get(s1,12))while(gets(s1)&&strcmp(s1,"")!=0)  {//if(strcmp(s1," ")==0)//break;Inset(root,s1);}while(cin>>ss){int  ans=search(root,ss);cout<<ans<<endl;}return 0;}


热点排行