字典树模板题

代码

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstdio>
  4. #include<cstring>
  5. using namespace std;
  6. int tot=1;
  7. int root;
  8. int trie[100500][30];
  9. int flagg[100500];
  10. int visit[100500];
  11. char s[100500];
  12. char t[10050];
  13. int cnt;
  14. void init()
  15. {
  16. memset(flagg,0,sizeof(flagg));
  17. memset(trie,0,sizeof(trie));
  18. memset(visit,0,sizeof(visit));
  19. tot=1;cnt=0;
  20. }
  21. void build_trie(char *x)
  22. {
  23. int len=cnt;
  24. root=0;
  25. for(int i=0;i<len;i++)
  26. {
  27. int id=x[i]-'a'+1;
  28. if(!trie[root][id])
  29. trie[root][id]=tot++;
  30. root=trie[root][id];
  31. }
  32. flagg[root]=1;
  33. }
  34. bool query(char *x)
  35. {
  36. int len=cnt;
  37. root=0;
  38. for(int i=0;i<len;i++)
  39. {
  40. int id=x[i]-'a'+1;
  41. if(!trie[root][id])
  42. {
  43. return false;
  44. }
  45. root=trie[root][id];
  46. }
  47. if(flagg[root]&&visit[root]==0)
  48. {
  49. visit[root]=1;
  50. return true;
  51. }
  52. return false;
  53. }
  54. int main()
  55. {
  56. while(gets(s))
  57. {
  58. if(s[0]=='#')
  59. break;
  60. init();
  61. int slen=strlen(s);
  62. if(s[slen-1]!=' ')
  63. s[slen]=' ';
  64. for(int i=0;i<=slen;i++)
  65. {
  66. if(s[i]==' '&&cnt!=0)
  67. {
  68. build_trie(t);cnt=0;
  69. }
  70. else if(s[i]!=' ')
  71. {
  72. t[cnt++]=s[i];
  73. }
  74. }
  75. int ans=0;
  76. for(int i=0;i<=slen;i++)
  77. {
  78. if(s[i]==' '&&cnt!=0)
  79. {
  80. int flag=query(t);cnt=0;
  81. if(flag)
  82. ans++;
  83. }
  84. else if(s[i]!=' ')
  85. {
  86. t[cnt++]=s[i];
  87. }
  88. }
  89. printf("%d\n",ans);
  90. }
  91. }

  

hdu-2072(字典树)的更多相关文章

  1. hdu 2072(字典树模板,set,map均可做)

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=2072 lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词 ...

  2. HDU 5687 字典树插入查找删除

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5687 2016百度之星资格赛C题,直接套用字典树,顺便巩固了一下自己对字典树的理解 #include< ...

  3. HDU 5384 字典树、AC自动机

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5384 用字典树.AC自动机两种做法都可以做 #include<stdio.h> #includ ...

  4. hdu 2112(字典树+最短路)

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. Chip Factory HDU - 5536 字典树(删除节点|增加节点)

    题意: t组样例,对于每一组样例第一行输入一个n,下面在输入n个数 你需要从这n个数里面找出来三个数(设为x,y,z),找出来(x+y)^z(同样也可以(y+z)^1)的最大值 ("^&qu ...

  6. hdu 1251 字典树的应用

    这道题看了大神的模板,直接用字典树提交的会爆内存,用stl 里的map有简单有快 #include <iostream> #include <map> #include < ...

  7. hdu 2896 字典树解法

    #include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> ...

  8. Repository HDU - 2846 字典树

    题意:给出很多很多很多很多个 单词 类似搜索引擎一下 输入一个单词 判断有一个字符串包含这个单词 思路:字典树变体,把每个单词的后缀都扔字典树里面,这里要注意dd是一个单词 但是把d 和dd都放字典树 ...

  9. Phone List HDU - 1671 字典树

    题意:给出一堆一组一组的数字  判断有没有哪一个是另外一个的前缀 思路:字典树 插入的同时进行判断  不过 当处理一组数字的时候 需要考虑的有两点1.是否包含了其他的序列2.是否被其他序列包含 刚开始 ...

  10. Hat’s Words HDU - 1247 字典树

    题意:给出数个单词 输出单词 如果该单词 是由字典中的单词组成的 思路:字典树 先把全部建树  然后对于每一个单词进行分割,分别拿两半到字典树里面去找 小心RE! #include<bits/s ...

随机推荐

  1. Mybatis学习总结(七)——调用存储过程

    一.返回select结果集 1.创建存储过程 DELIMITER // DROP PROCEDURE IF EXISTS proc_queryUser; CREATE PROCEDURE proc_q ...

  2. Nginx(二)------nginx.conf 配置文件

    上一篇博客我们将 nginx 安装在 /usr/local/nginx 目录下,其默认的配置文件都放在这个目录的 conf 目录下,而主配置文件 nginx.conf 也在其中,后续对 nginx 的 ...

  3. JVM-Java内存区域

    JVM虚拟机运行时数据区结构分为: 其中方法区和堆是所有线程共享的内存区域,而Java栈.本地方法栈.程序计数器是线程私有的. 我们详细介绍运行时数据区的各个区域及其作用. 程序计数器: 一块较小的内 ...

  4. 一起学习造轮子(三):从零开始写一个React-Redux

    本文是一起学习造轮子系列的第三篇,本篇我们将从零开始写一个React-Redux,本系列文章将会选取一些前端比较经典的轮子进行源码分析,并且从零开始逐步实现,本系列将会学习Promises/A+,Re ...

  5. 解决win7 win10上网卡慢问题

    在管理员身份运行CMD命令行,然后输入netsh interface tcp set global autotuninglevel=disable 即可.

  6. Dedekind整环上的有限生成模的分类

    以下内容本想载于我的代数数论初步当中,但是与整体风格不符,所以换到这里来,为了排版上的方便,在注释掉之前用截图留存. 附:参考文献

  7. 关于function和task的说明

    1.  关于函数function调用,总结两个要点: 1.  函数调用一般产生一个值,这个值被赋值给某个变量 2.  函数所返回的值只能是一个,不可以是多个,不能像C语言中采用指针的方式返回多个值.因 ...

  8. Innodb日志与事务

    1.Innodb日志: 错误日志:记录出错信息,也记录一些警告信息或者正确的信息. 查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行. 慢查询日志:设置一个阈值,将运行时间超过该 ...

  9. Python_生产者消费者模型、管道、数据共享、进程池

    1.生产者消费者模型 生产者 —— 生产数据的人 消费者 —— 消费数据的人 生产者消费者模型:供销数据不平衡的现象. import time import random from multiproc ...

  10. python3 网页下拉框和悬浮框操作基础汇总

    #悬浮定位操作 from selenium.webdrier import ActionChains #浏览器实例化 #定位移动的位置赋给一个参数 ActionChains(浏览器).move_to_ ...