Trie树

【题目链接】Trie树

&题意:

输入

输入的第一行为一个正整数n,表示词典的大小,其后n行,每一行一个单词(不保证是英文单词,也有可能是火星文单词哦),单词由不超过10个的小写英文字母组成,可能存在相同的单词,此时应将其视作不同的单词。接下来的一行为一个正整数m,表示小Hi询问的次数,其后m行,每一行一个字符串,该字符串由不超过10个的小写英文字母组成,表示小Hi的一个询问。

n, m<=100000,词典的字母表大小<=26.

输出

对于小Hi的每一个询问,输出一个整数Ans,表示词典中以小Hi给出的字符串为前缀的单词的个数。

&题解:

Trie蓝书模板

&代码:

#include <bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
typedef long long ll;
const int maxNo= 1000000 +7,sSi=26;
struct Trie {
int ch[maxNo][sSi],val[maxNo],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(char *s) {
int u=0;
for(int i=0; s[i]; i++) {
int c=idx(s[i]);
if(!ch[u][c]) {
memset(ch[sz],0,sizeof(ch[sz]));
ch[u][c]=sz++;
}
u=ch[u][c];
val[u]++;
}
}
int query(char *s) {
int u=0;
for(int i=0; s[i]; i++) {
int c=idx(s[i]);
if(!ch[u][c]) return 0;
u=ch[u][c];
}
return val[u];
}
} tr;
int n,m;
char s[20];
int main() {
freopen("E:1.in","r",stdin);
while(~scanf("%d",&n)) {
tr.init();
for(int i=0; i<n; i++) {
scanf("%s",s);
tr.insert(s);
}
scanf("%d",&m);
// for(int i=0; i<5; i++) {
// printf("%d ",tr.val[i]);
// } puts("");
for(int i=0; i<m; i++) {
scanf("%s",s);
// puts(s);
printf("%d\n",tr.query(s));
}
}
return 0;
}

最新文章

  1. row_number()函数
  2. C语言程序代写
  3. DiskGenius无损调整分区大小
  4. unity3d AssetBundle包加密
  5. setcookie 之 我见
  6. CSS各个浏览器Hack的写法
  7. Codeforces Round #349 (Div. 1) A. Reberland Linguistics dp
  8. PPT五大插件汇总下载
  9. English -&#160;therefore,so,hence,then,accordingly,thus用法解析
  10. .net 配置文件 分析 EntityName 时出错
  11. shell中exec解析
  12. yii中调整ActiveForm表单样式
  13. Java转型(向上转型和向下转型)
  14. 利用GUID唯一标识符并设置它的过期时间
  15. min-max容斥 hdu 4336 &amp;&amp; [BZOJ4036] 按位或
  16. HDU 3586.Information Disturbing 树形dp 叶子和根不联通的最小代价
  17. 不需要再手写 onSaveInstanceState 了,因为你的时间非常值钱
  18. jQuery-1.样式篇---属性与样式
  19. Chrome上的扩展工具
  20. java zxing实现二维码生成和解析zxing实现二维码生成和解析

热门文章

  1. [No0000E6]C# 判断与循环
  2. 配置zsh
  3. Page7:能控性、能观性及其判据和对偶原理(2)[Linear System Theory]
  4. 转:ORACLE 中ROWNUM用法总结!
  5. asp.net开发中的问题总结
  6. rar压缩类
  7. JavaScript substr() 字符串截取函数使用详解
  8. try catch和spring事务
  9. 【Mock】【接口测试】【面试】mock-server 环境搭建—加分项!
  10. 【数据库】SQL语句解析