A. Alien Rhyme 题意: 思路:将字符反向插入一颗Trie,然后自下而上的贪心即可,即先选后缀长的,再选后缀短的。 实现: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <iomanip ...
分类:
其他好文 时间:
2019-04-13 12:22:41
阅读次数:
371
"传送门" 如果某个串$b$是$a_j$的前缀,并且$a_i$支配$b$,那么$a_i$后面就可以放$a_j$,所以如果把对应的图建出来,问题就是求最长链,如果有环就是无限长 说到前缀,我们可以把所有$a$串建一棵$Trie$,然后某个$a_i$支配的$b$串节点对应的子树内的$a_j$串节点都可以 ...
分类:
其他好文 时间:
2019-04-13 11:10:41
阅读次数:
125
思路 有点麻烦的Trie树题 注意到每个节点的贡献是(深度(根的深度是0)乘2+1)乘上在这个点分叉的字符串个数,所以全部插入之后dfs一遍即可(为了避免两个字符串一样的情况,还应该特判一下最后的中止节点) 代码 字符集太大需要用邻接表存才能跑过 直接存边的TLE代码 cpp include inc ...
分类:
其他好文 时间:
2019-04-11 16:18:42
阅读次数:
113
传送门 超级钢琴+可持久化$Trie$ 同样设三元组 $(o,l,r)$ 表示左端点为 $o$,右端点 $\in [l,r]$ 的区间的最大异或值,这个东西可以用可持久化 $Trie$ 来维护 一开始把所有 $(i,i,n)$ 扔到堆里,然后每次取出计算贡献,设取得最大异或值的位置为 $t$,然后再 ...
分类:
其他好文 时间:
2019-04-10 13:27:40
阅读次数:
155
字典树(Trie Tree) 入门模板题 hdu oj P1251 题目描述 Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 输入格式 输入数据的第一部分是一张单词表,每行一个 ...
分类:
其他好文 时间:
2019-04-09 18:47:50
阅读次数:
146
interlinkage: https://www.luogu.org/problemnew/show/P5283 description: solution: 显然有$O(n^2)$的做法,前缀和优化一下即可 正解做法是先确定一个右端点$r$,找到最优的$l$使得该区间的异或和最大,这个可以用可持 ...
分类:
其他好文 时间:
2019-04-09 16:48:45
阅读次数:
169
D1T1,超级钢琴 + 可持久化01trie。 T2,sam上子树优化连边,注意有一个堆坑就是多个长度不同的串可能在一个节点...然后长度相同的串在一个节点没影响...然后子树连边的时候别把路过的节点的len值也加上了... T3,什么SB题guna。 D2T1,只想出了个SB背包套背包,比搜索跑的 ...
分类:
其他好文 时间:
2019-04-07 22:18:12
阅读次数:
179
```cpp / 查询异或最大值的方法是前缀和一下, 在01trie上二分 那么我们可以对于n个位置每个地方先求出最大的数, 然后把n个信息扔到堆里, 当我们拿出某个位置的信息时, 将他去除当前最大后最大的信息插入到堆中 所以动态维护01trie就可以了 / include include incl ...
分类:
其他好文 时间:
2019-04-07 22:07:32
阅读次数:
204
程序清单 5-8 桌面搜索应用程序中的生产者任务和消费者任务(和书上有所不同,有些许改动) 1、生产者 2、消费者 3调用 ...
分类:
其他好文 时间:
2019-04-05 14:21:17
阅读次数:
113