HDU 1251 统计难点
HDU 1251 统计难题统计难题Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 131070/65535 K (Java/O
HDU 1251 统计难题
统计难题Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)
Total Submission(s): 11797 Accepted Submission(s): 4967
Problem DescriptionInputOutputSample InputSample OutputAuthorRecommend#include<cstdio>#include<cstring>#include<iostream>using namespace std;typedef struct TrieNode{int c;struct TrieNode *next[26];TrieNode(){c=0;memset(next,0,sizeof(next));}};char str[15];TrieNode *root=NULL;void CreatTree(char s[]){int i,len;len=strlen(s);TrieNode *p=root;TrieNode *temp;for(i=0;i<len;i++){if(p->next[s[i]-'a']==NULL){temp=new TrieNode;p->next[s[i]-'a']=temp;}p=p->next[s[i]-'a'];p->c++;}}void Search(char s[]){int i,len;len=strlen(s);TrieNode *p=root;for(i=0;i<len;i++){if(p->next[s[i]-'a'])p=p->next[s[i]-'a'];else{cout<<0<<endl;return;}}cout<<p->c<<endl;}int main(){root=new TrieNode;while(gets(str)){if(str[0]=='\0'){memset(str,'\0',sizeof(str));break;}CreatTree(str);memset(str,'\0',sizeof(str));}while(cin>>str){Search(str);memset(str,'\0',sizeof(str));}return 0;}