标签:nod pre ems div for printf 模板 string \n
抄的
#include<stdio.h> #include<string.h> const int maxnode=1000005; const int sigma_size=26; struct Trie{ int ch[maxnode][sigma_size]; int sz; int num[maxnode]; Trie(){ sz=1; memset(ch[0],0,sizeof(ch[0])); memset(num,0,sizeof(num)); } int idx(char c) { return c - ‘a‘; } void insert(char *s, int v){ int u=0, n =strlen(s); for(int i=0;i<n;i++){ int c= idx(s[i]); if(!ch[u][c]){ memset(ch[sz],0,sizeof(ch[sz])); num[sz]=0; ch[u][c]=sz++; } u=ch[u][c]; num[u]++; } } int search(char *s){ int n=strlen(s); int u=0; for(int i=0;i<n;i++){ int c=idx(s[i]); if(!ch[u][c]) return 0; u=ch[u][c]; } return num[u]; } }; Trie T; int main() { char s[15]; int flag=0; while(gets(s)){ if(s[0]==‘\0‘)break; T.insert(s,1); } while(~scanf("%s",s)){ printf("%d\n",T.search(s)); } }
标签:nod pre ems div for printf 模板 string \n
原文地址:https://www.cnblogs.com/ccsu-zry/p/9769536.html