之前写字典树虽然很熟也能变化 但是一直是到了场上再乱写 写的很长 于是准备写个短点的板子 于是选了个水题 然而写出了1W个bug insert和query反而写的没什么问题.. ...
分类:
其他好文 时间:
2017-10-09 22:37:04
阅读次数:
144
核心思想: 利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的 举个例子 上图是由 am as tea too tooth two 构成的字典树。每个节点代表的单词是从根遍历到他的路径,标黄的是当前节点存在单词 代码实现: 基本性质: 查询和插入 对于一个单词,我只要按照它的每个字母从根走 ...
分类:
其他好文 时间:
2017-10-07 22:49:04
阅读次数:
170
题意 : 给出一颗无向边构成是树,每一条边都有一个边权,叫你选出一条路,使得此路所有的边的异或值最大。 分析 : 暴力是不可能暴力的,这辈子不可能暴力,那么来冷静分析一下如何去做。假设现在答案的异或值的最大的路的起点和终点分别为 a、b,这个异或值为了方便我用 ⊕(a, b) 表示,那么接下来有一个 ...
分类:
其他好文 时间:
2017-09-30 13:18:24
阅读次数:
109
题意 : 度熊手上有一本神奇的字典,你可以在它里面做如下三个操作:1、insert : 往神奇字典中插入一个单词2、delete: 在神奇字典中删除所有前缀等于给定字符串的单词3、search: 查询是否在神奇字典中有一个字符串的前缀等于给定的字符串 分析 : 利用字典树,插入操作时对于每一个节点的 ...
分类:
其他好文 时间:
2017-09-30 11:37:47
阅读次数:
134
模板 : const int Bit = 32; struct Trie { Trie *ch[2]; LL v; inline void init(){ for(int i=0; i<2; i++) this->ch[i] = NULL; this->v = -1; } }; Trie *root ...
分类:
其他好文 时间:
2017-09-29 16:46:25
阅读次数:
214
The xor-longest Path Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7332 Accepted: 1555 Description In an edge-weighted tree, the xor-leng ...
分类:
其他好文 时间:
2017-09-28 22:32:37
阅读次数:
409
题意 : 给你 w 个单词以及他们的频率,现在给出模拟 9 键打字的一串数字,要你在其模拟打字的过程中给出不同长度的提示词,出现的提示词应当是之前频率最高的,当然提示词不需要完整的,也可以是 w 个单词出现最多次数的前缀。 分析 : 利用字典树存储这 w 个单词,然后给每一个结点的权值赋上其单词出现 ...
分类:
其他好文 时间:
2017-09-28 22:21:26
阅读次数:
214
模板 : #include<string.h> #include<stdio.h> #include<malloc.h> #include<iostream> #include<algorithm> using namespace std; const int maxn = 26; struct T ...
分类:
编程语言 时间:
2017-09-27 23:56:27
阅读次数:
343
给m个子串,求长度为n的不包含子串的母串数,最直接的应该是暴搜,肯定tle,考虑用ac自动机 将子串建成字典树,通过next表来构造矩阵,然后用矩阵快速幂求长度为n的数量 邻接矩阵https://wenku.baidu.com/view/d7b9787f1711cc7931b716b0.html 对 ...
分类:
其他好文 时间:
2017-09-21 17:57:33
阅读次数:
125
题目链接 Watto and Mechanism 题意 给出n个串(相当于字典),然后给出m个询问。 每个询问以字符串的形式给出,你需要改变这个字符串中的任意一个字符 (必须改变且只能改变一个) 如果改变之后可以成为n个串中的一个字符串,则输出YES, 否则输出NO。 字母集合为{a, b, c} ...
分类:
其他好文 时间:
2017-09-20 00:41:35
阅读次数:
193