用01Trie树来进行贪心,先尽量走不同方向,再走相同方向 但是如果在每个节点都开一个01Trie树并把所有子节点都加进来,复杂度会爆炸 我们考虑把所有儿子的01Trie树来合并到一起 合并的时候可以不用新建节点来可持久化(所以为什么放在了可持久化作业里a。。。) (如果建了新点就是可持久化01Trie树合并,空间复杂度为...
set<int> s[maxn]; vector<int> g[maxn];intrt[maxn];structtrie{intch[maxn <<7][2], cnt;trie() { cnt =0; }voidins(int&p,intv){if(!p) p = ++cnt;intnp = p;for(inti =20; ~i; i--) {intc = (v >> i) &1;if(!ch[np][c]) ch[np][c] = ++cnt; np = ch[...
LOJ#6198. 谢特 SAM+启发式合并+01trie 并不难的一道字符串题. 显然后缀自动机上进行字典树的启发式合并. 但是一定注意,题中要求的是两个后缀的 LCP 而不是两个前缀的 LCP. 所以在构建后缀自动机的时候要从后向前构建. 刚开始从前向后构建 WA 了半天. 然后进行启发式合并的时候可以对每个节点维护一个 id[...
所有的ip前缀可以构成一棵01Trie,每个ip地址对应Trie上的一棵叶子结点,那么题意就是选出尽可能少的结点,使其子树中包含所有给出前缀的叶子结点,dp即可 非标准解法,没看提示,被卡内存了很难受~~ 1#include<bits/stdc++.h>2usingnamespacestd;3typedeflonglongll;4constintN=4e7+10,inf=0x3f3f3f3f;5intn,...