字典树模板
2017-08-27 14:17
246 查看
#include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <vector> #include <algorithm> #include <string> #include <iostream> using namespace std; const int MAXN=500000+10; struct trie{ int ch[MAXN<<3][30]; int val[MAXN<<3]; int sz; void init(){ sz=1; memset(ch[0],0,sizeof ch[0]); memset(val,0,sizeof val); } int idx(char c){ return c-'a'; } void insert(const char *s){ int u=0,n=(int)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]); val[sz]=0; ch[u][c]=sz++; } u=ch[u][c]; val[u]++; } } int query(const char *s,int rt,int n,int cur){ int res=0; if(cur==n){ return val[rt]; } if(s[cur]=='$'){ for(int i=0;i<26;i++){ if(ch[rt][i]){ res+=query(s, ch[rt][i], n, cur+1); } } }else{ int c=idx(s[cur]); if(ch[rt][c]){ return query(s,ch[rt][c],n,cur+1); } return 0; } return res; } };
相关文章推荐
- hdu1251(map用法/字典树模板)
- 字典树模板(poj2001验证)
- C++——字典树(Trie树)模板——统计难题(HDU1251)
- 于是他错误的点名开始了(字典树模板)
- HDU 1075 What Are You Talking About(字典树模板题)
- 字典树(trie树)模板: Phone List 问题
- HDU 1251 统计难题(字典树模板)
- 字典树模板
- trie树学习总结(字典树模板)
- HDU1251——统计难题(字典树模板)
- 字典树--模板
- 字典树(Tire树)模板 & 例题
- 字典树模板
- UVA11488 字典树裸题+刘汝佳字典树模板
- 字典树的小理解兼模板
- hdu 1305 字典树 模板
- UvaLive 3942 | la3942 Remember the Word (字典树模板)
- 字典树模板
- Trie(字典树模板)
- 字典树以及模板