DHU--1247 Hat’s Words && HiHocder--1014 Trie树 (字典树模版题)
题目链接
两个一个递归方式一个非递归
HiHocoder
#include<bits/stdc++.h> using namespace std; #define maxn 100010 struct ac{ ],fa; }tre[maxn*]; ,len=; string s; void updata(int x,int y){ if(x>=s.size()) return ; int k=s[x]-'a'; int i; if(tre[y].nex[k]){ i=tre[y].nex[k]; tre[i].sum++; updata(++x,i); }else{ tre[y].nex[k]=++tot; tre[tot].sum=; i=tot; updata(++x,i); } ){ tre[i].fa++; } } int query(int x,int y){ int k=s[x]-'a'; ){ int i=tre[y].nex[k]; return tre[i].sum; } if(tre[y].nex[k]){ return query(++x,tre[y].nex[k]); } ; } int main(){ memset(tre,,sizeof(tre)); int n,m; cin>>n; ;j<n;j++){ cin>>s; updata(,); } cin>>m; ;j<m;j++){ cin>>s; printf(,)); } } /* 5 babaab babbbaaaa abba aaaaabaa babaababb 5 babb baabaaa bab bb bbabbaab 求前缀 1 0 3 0 0 */
HDU
#include<bits/stdc++.h> using namespace std; #define maxn 100000 ][]; ,tot=; struct ac{ ],fa,c; void init(){ sum=;fa=; memset(nex,,sizeof(nex)); } }tre[maxn*]; void add(char s[]){ ,j; ; while(s[i]){ int k=s[i]-'a'; if(tre[z].nex[k]){ j=tre[z].nex[k]; tre[j].sum++; z=j; }else{ tre[z].nex[k]=++tot; j=tot; tre[j].init(); tre[j].sum=; z=j; } i++; } tre[z].fa++; } bool query(char s[]){ ,j,z=; while(s[i]){ int k=s[i]-'a'; ) ; z=tre[z].nex[k]; i++; } ; ; } bool query1(char s[]){ ,j,z=; while(s[i]){ int k=s[i]-'a'; z=tre[z].nex[k]; if(tre[z].fa){ )) ; } i++; } ; } int main(){ ]); ;j<len;j++){ if(query1(a[j])){ cout<<a[j]<<endl; } } }
DHU--1247 Hat’s Words && HiHocder--1014 Trie树 (字典树模版题)的更多相关文章
- 剑指Offer——Trie树(字典树)
剑指Offer--Trie树(字典树) Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种的单词.对于每一个单词,我们要判断他出没出现过,如果出现了,求第一次出现在第几个位 ...
- AC自动机——1 Trie树(字典树)介绍
AC自动机——1 Trie树(字典树)介绍 2013年10月15日 23:56:45 阅读数:2375 之前,我们介绍了Kmp算法,其实,他就是一种单模式匹配.当要检查一篇文章中是否有某些敏感词,这其 ...
- Trie(字典树)
没时间整理了,老吕又讲课了@ @ 概念 Trie即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种,典型应用是统计和排序大量的字符串(不限于字符串) Trie字典树主要用于存储字符串, ...
- [LintCode] Implement Trie 实现字典树
Implement a trie with insert, search, and startsWith methods. Have you met this question in a real i ...
- Trie树|字典树(字符串排序)
有时,我们会碰到对字符串的排序,若采用一些经典的排序算法,则时间复杂度一般为O(n*lgn),但若采用Trie树,则时间复杂度仅为O(n). Trie树又名字典树,从字面意思即可理解,这种树的结构像英 ...
- Trie - leetcode [字典树/前缀树]
208. Implement Trie (Prefix Tree) 字母的字典树每个节点要定义一个大小为26的子节点指针数组,然后用一个标志符用来记录到当前位置为止是否为一个词,初始化的时候讲26个子 ...
- Trie树/字典树题目(2017今日头条笔试题:异或)
/* 本程序说明: [编程题] 异或 时间限制:1秒 空间限制:32768K 给定整数m以及n个数字A1,A2,..An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大 ...
- Trie树(字典树)的介绍及Java实现
简介 Trie树,又称为前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串.与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定.一个节点的所有子孙都有相同的前缀,也 ...
- Trie树 - 字典树
1.1.什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优点是最大限 ...
- Trie(前缀树/字典树)及其应用
Trie,又经常叫前缀树,字典树等等.它有很多变种,如后缀树,Radix Tree/Trie,PATRICIA tree,以及bitwise版本的crit-bit tree.当然很多名字的意义其实有交 ...
随机推荐
- getMessage(),getFile,getLine获取异常用法
try { $param = $request->all(); $param['building_id'] = 0; $param['sync'] = 2; // 1小程序2App $param ...
- RandomStringUtils
System.out.println(RandomStringUtils.random(5));//随机多少个随机字符中文环境乱码 System.out.println(RandomStringUti ...
- Ionic1.x项目中的Installing npm packages问题
与npm远程源有关,可以通过cnpm来解决: 一.ionic start myApp blank --skip-npm(跳过Installing npm packages会产生的问题): 二.然后进入 ...
- cookie,localStorage和sessionStorage区别
三者的异同 特性 Cookie localStorage sessionStorage 数据的生命期 一般由服务器生成,可设置失效时间.如果在浏览器端生成Cookie,默认是关闭浏览器后失效 除非被清 ...
- SpringBoot 标签之启动
在SpringBoot中入口我们使用: package com.sankuai.qcs.regulation.traffic; import org.springframework.boot.Spri ...
- 老男孩python学习自修第二十一天【socket】
1. 使用python编写一个静态的web服务器,能够处理静态页面的http请求 原理: a. 使用socket进行服务端和浏览器之间的通信 b. 使用多线程处理多个客户端浏览器的请求 c. 解析用户 ...
- CSS 常见的8种选择器 和 文本溢出问题
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>c ...
- react 入坑笔记(三) - Props
React Props props - 参数. 组件类 React.Component 有个 defaultProps 属性,以 class xxx extend React.Component 形式 ...
- orcale增加列脚本
--编号declare v_cnt number; V_SQL VARCHAR2 (500) := '';begin select count(*) into v_cnt from dual wher ...
- PHP——实现随机打乱一个二维数组
<?php /* * @Author: wyy * @Date: 2019-01-28 10:26:29 * @Email: 2752154874@qq.com * @Last Modified ...