题目:实现一个字典树 注: 使用字典结构来存储,每层都是一个字典,存储此层所有的元素(包括字典)。每个元素存储方式也为一个字典,key为字符和一个标记end_of_word,表示该字符是否为一个单词的结束。插入操作时,遍历要插入词的每个字符,如果在字典树中找不到,则将该字符插入字典树,默认值为{}, ...
分类:
其他好文 时间:
2019-08-19 23:14:29
阅读次数:
86
1.总览 LCT 链分治(树剖) 点/边分治 2.点分治 一棵树,点有$0/1$,多次修改,询问最远的两个$1$距离。 建出点分树,每个子树用堆维护:①最远的$1$距离;②它的每个儿子的①堆顶; 全局维护每棵子树②堆最大的两个值,每次修改暴力改就可以。 时间复杂度$O(n \log^2n)$(基本动 ...
分类:
其他好文 时间:
2019-08-19 09:59:40
阅读次数:
72
"题目链接" problem 给出n个点,每个点有权值,求最小生成树。定义一条边的代价为所连接两点的权值异或值。 solution 考虑分治,根据最高位为0还是1分为两部分。然后分别求最小生成树。合并的时候就将最高位为0的一部分插入到trie中,然后从最高位为1的一部分中查询。 注意对trie的清空 ...
分类:
其他好文 时间:
2019-08-18 21:46:32
阅读次数:
67
例题: 往事太多,有时候忘了就忘了吧。 如果有非记不可的,就只能用点附加手段啦! 我们定义一棵往事树是一个 n 个点 n 1 条边的有向无环图,点编号为 1到 n,其中 1 号点被称为是根结点,除根结点以外, 每个点都恰有一条出边(即以其作为起点的边)。 每条边上有 1 个字符(这里我们实际上用一个 ...
分类:
编程语言 时间:
2019-08-18 11:42:31
阅读次数:
85
【题目链接】 https://loj.ac/problem/10058 【题意】 对于每一段文字,其前缀在母串上的最大匹配长度是多少呢 【参考别人的题解】 https://www.luogu.org/problemnew/solution/P5231 我们只需要先建立所有密码的trie树再以母串为主 ...
分类:
其他好文 时间:
2019-08-17 00:55:24
阅读次数:
79
【题目链接】: https://loj.ac/problem/10056 【题意】 请输出树上两个点的异或路径 的最大值。 【题解】 这个题目,y总说过怎么做之后,简直就是醍醐灌顶了。 我们知道Xor路径,我们从根结点处理所有结点的 到根结点的异或和,我们想要两个点的异或路径。 其实就是利用根结点 ...
分类:
其他好文 时间:
2019-08-17 00:54:32
阅读次数:
70
参考博客: https://www.luogu.org/problemnew/solution/P3294 https://blog.csdn.net/VictoryCzt/article/details/87186287 【题意】 题意如果看不懂,请到第二个链接去推一推事例,你就明白这个过程了。 ...
分类:
其他好文 时间:
2019-08-17 00:42:16
阅读次数:
86
【题目链接】 https://loj.ac/problem/10059 【题意】 有一个长度不超过 1e5 的字符串 。Farmer John 希望在 T 中删掉 n 个屏蔽词(一个屏蔽词可能出现多次),这些词记为 P1,P2……Pn。 【题解】 利用栈来进行匹配删除即可。 1、建模式串的AC自动机 ...
分类:
其他好文 时间:
2019-08-17 00:38:46
阅读次数:
80
【题目链接】 https://loj.ac/problem/10050 【题意】 给出n个数,其中取出两个数来,让其异或值最大。 【题解】 经典的01字典树问题。 首先需要把01字典树建出来。 然后对于每一个串都跑一遍。如果存在当前位 不同的 节点,就往那里跑,否则顺着跑。 一切尽在代码中。 【代码 ...
分类:
其他好文 时间:
2019-08-16 09:15:28
阅读次数:
88
【题目链接】: https://loj.ac/problem/10052 【题意】: 就是给一些串,是否存在两个串是相同前缀的。 【题解】 模板题,不想解释了。 【代码】: 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 ...
分类:
其他好文 时间:
2019-08-16 09:13:31
阅读次数:
71