HDU1251
在HDU上交g++超内存c++就没事,,,
咱也不知道为什么,咱也不敢问
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
struct tire{
int n;
tire *next[26];
};
tire root;
void in(char *a){
int l=strlen(a);
tire *p=&root;
tire *q;
for(int i=0;i<l;i++){
int c=a[i]-'a';
if(p->next[c]==NULL){
q=(tire *)malloc(sizeof(tire));
for(int i=0;i<26;i++)
q->next[i]=NULL;
q->n=1;
p->next[c]=q;
p=p->next[c];
}
else{
p->next[c]->n++;
p=p->next[c];
}
}
}
int ask(char *a){
int l=strlen(a);
tire *p=&root;
for(int i=0;i<l;i++){
int c=a[i]-'a';
p=p->next[c];
if(p==NULL)
return 0;
}
return p->n;
}
int main(){
char a[20];
for(int i=0;i<26;i++)
root.next[i]=NULL;
while(gets(a)&&a[0]!='\0'){
in(a);
}
while(~scanf("%s",a)){
printf("%d\n",ask(a));
}
return 0;
}