
字典树
Dave_L
这个作者很懒,什么都没留下…
展开
-
AC自动机字符串匹配百万模式串 获取数量及位置 结构体排序交换指针
这是个计算机应用编程课的作业,对于小数据其实很简单,就是AC自动机模板题目。但作业要求是1G的主串(汉字+字母+数字),120w+的模式串,得到每个模式串的出现次数及位置,并将结果排序。因为数据问题就会出现不好处理的点,如结构体排序效率,汉字编码等的处理等细节问题。感觉写完对面向对象编程以及指针等的处理更加了解,对我这种基础不牢固的人还是有些帮助,因此记录下来。主要部分:AC自动机+手写结构体的堆排序+手写数组实现的循环队列+汉字utf-8编码大致逻辑:读取字符串时采用逐行读取,编码utf-8原创 2020-11-06 16:42:16 · 308 阅读 · 0 评论 -
UVA11488 字典树模板题
https://vjudge.net/problem/UVA-11488求 前缀*以这个子串为前缀的数目 的最大值。字典树模板题。#include #include #include #include #include using namespace std;const int AX =5e5+6;int ans;typedef struct Trie_Node原创 2017-08-03 18:57:33 · 343 阅读 · 0 评论 -
hdu 1075 字典树搜索
#include using namespace std;typedef struct Trie_Node{ struct Trie_Node* next[26]; int count; bool exist; char trans[20];}TrieNode,*Trie;TrieNode* Trie_createroot(){ TrieNode* root = new原创 2017-07-03 21:23:22 · 319 阅读 · 0 评论 -
UVA12333
题目传送 : https://vjudge.net/problem/UVA-12333大数+字典树给几个斐波那契数的前缀,让你判断最小是第几个。。我写的大数怎么就过不了,只好用了小白的唉。。边生成大数边插入,并且附加个id就行了。注意说100000就开到100000别弄大,一大就错。#include #include #include using namespace原创 2017-07-28 08:58:35 · 1208 阅读 · 1 评论 -
字符串专题 - 字典树 全文检索类型
思路:把要查询的字符串建树,将文章一点一点截取成一个个字符串去找是否存在,存在就加上树中这个单词的数目。 反着来存文章会ME。 Code:#include <bits/stdc++.h>using namespace std;const int AX = 1e6+66;char s[AX];char tmp[105];typedef struct Trie_No...原创 2018-06-03 11:24:29 · 369 阅读 · 0 评论 -
hdu2222 AC自动机多模匹配 || 字典树
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 74174 Accepted Submission(s): 25499Problem Description In the modern ...原创 2018-06-05 20:56:45 · 243 阅读 · 0 评论 -
01字典树的应用51nod1295 XOR key 可持久化字典树
51nod1295 求l,r区间与x异或最大值。#include <bits/stdc++.h>using namespace std;const int AX = 5e4+66;int t[AX*35][2]; int sum[AX*35];int root[AX];int cnt ;void insert( int val , int &x , int...原创 2018-07-29 09:53:23 · 266 阅读 · 0 评论 -
练习赛10
A 题意:给你一个字符串s,随机选取一段区间[0,k],将这一段区间移动到剩下的字符串的左边,不知道t是什么,但是知道t的第一个字母,还能随便看t中的任意一个字母,问最优策略下获胜的概率是多少。 思路:枚举第一个字母,以及第二个字母在的位置,出现一次的话就加上。 Code:#include &lt;bits/stdc++.h&gt;using namespace std;const ...原创 2018-07-26 19:49:44 · 243 阅读 · 0 评论 -
01字典树求最大异或最小异或&&删除操作&&HDU4825 Xor Sum&& Codeforces Round #470 (rated, Div. 1)C. Perfect Security
01字典树就是普通的字典树加上贪心策略的查找,如果是求最大异或值,则每次都去找跟自己的那一位异或为1的,求最小值则相反。例题:最大异或。 HDU4825Code:#include &lt;bits/stdc++.h&gt;#define INF 0x3f3f3f3fusing namespace std;const int AX = 3e5+66;int a[AX];typ...原创 2018-07-27 14:28:37 · 733 阅读 · 0 评论