hdu 1251 统计难题

来源:互联网 发布:闲鱼如何申请淘宝介入 编辑:程序博客网 时间:2024/05/16 17:18
字典树的处!开始g++提交超内存,改c++提交就过了!

#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<string>using namespace std;typedef struct T{    T* next[26];    int v;}T;T* root;int ct(string s){    int j;    T *p=root,*q;    for(int i=0;i<s.size();i++)    {        j=s[i]-'a';        if(p->next[j]==NULL)        {            q=(T*)malloc(sizeof(T));            q->v=1;            for(int k=0;k<26;k++)                q->next[k]=NULL;            p->next[j]=q;            p=p->next[j];        }        else        {            p->next[j]->v++;            p=p->next[j];        }    }    return 0;}int ft(string ss){    T *p=root;    for(int i=0;i<ss.size();i++)    {        int j=ss[i]-'a';        p=p->next[j];        if(p==NULL)            return 0;    }    return p->v;}int main(){    string str;    root=(T*)malloc(sizeof(T));    for(int i=0;i<26;i++)        root->next[i]=NULL;    while(getline(cin,str),str!="")    {        ct(str);    }    while(cin>>str)    {        int ans=ft(str);        printf("%d\n",ans);    }    return 0;} 


 

0 0
原创粉丝点击