trie树
trie树
gongyuandaye
不要再问我会不会写可持久化非确定状态AC自动分块维护线段平衡仙人掌优化最小费用最大流预处理混合图上莫比乌斯反演莫队带花舞蹈链并查集树状数组套主席树预处理动态DP分治FFT求多项式逆元对数函数的指数函数用可持久化并查集合并最小费用循环流上插头DP了。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2020牛客多校五 B. Graph (异或最小生成树+01trie)
题意:给你一棵树,每条边都有边权,可以任意加边或删边,但要保证图始终连通且一个环上边的异或和为0。求操作后最小边权和。 题解:异或最小生成树+01trie 同CF 888G,不过这题要将边权转化为点权,这个过程dfs即可。 为什么可以转换成固定的点权呢?我们可以发现,无论加边还是删边,任意两点间的路径异或和始终不变,因为两点若有多条路径,这些路径边权和之间的异或始终为0,也就是相等。所以我们可以固定点权,两点的点权异或就是边权。 接下来就是一样的思路了。 Boruvka算法,求最小生成树的另一种方法,每一次原创 2020-07-26 22:58:33 · 343 阅读 · 0 评论 -
CodeForces 888G Xor-MST (异或最小生成树+01trie)
题意:给定 n 个结点的无向完全图。每个点有一个点权为 ai。连接 i 号结点和 j 号结点的边的边权为 ai ⊕ aj。求这个图的 MST 的权值。 题解:异或最小生成树+01trie Boruvka算法,求最小生成树的另一种方法,每一次选择连通块之间最小的边,然后连接两个连通块,我们可以用这种思想来求mst。而另外两种求mst的,肯定得n2预处理完全图的边权,必然超时。 对于异或,我们首先想到01trie来维护异或和。 我们先将每一个点按照权值从高位到低位插入01trie, 连接的话就是叶子结点之间通过原创 2020-07-26 22:12:58 · 539 阅读 · 0 评论 -
P4551 最长异或路径 (01trie+维护异或最值)
题意:给定一棵n个点的带权树,结点下标从1开始到N。寻找树中找两个结点,求最长的异或路径。异或路径指的是指两个结点之间唯一路径上的所有边权的异或。 题解:01trie+维护异或最值 指定rtrtrt,用Xor(u,v)Xor(u,v)Xor(u,v)表示uuu与vvv两点之间的边权异或,那么Xor(u,v)=Xor(u,rt)⨁Xor(v,rt)Xor(u,v) = Xor(u,rt)\bigoplus Xor(v,rt)Xor(u,v)=Xor(u,rt)⨁Xor(v,rt),其实这只是计算了lca路径上原创 2020-07-26 16:25:37 · 330 阅读 · 0 评论 -
P2580 于是他错误的点名开始了 (trie树)
题意:给你n个名字串,然后进行q次点名,每次你需要回答“名字不存在”、“第一次点到这个名字”、“已经点过这个名字”之一。 题解:trie树 trie树模板。 用vis[]vis[]vis[]标记尾结点编号是否访问。 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<cstdio> #include<string> #include<cstring> #include<algorithm原创 2020-07-26 15:40:19 · 278 阅读 · 0 评论
分享