![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
trie
lushanlushan0026
退役acmer,准研究生
展开
-
牛客多校 B Graph 分治+trie求完全图的生成树
这题是51nod上一个题目稍微变形了一下:完全图最小生成树原题是 对于一个完全图 每条边(u,v)的边权都是 a[u]^a[v] 求一个最小生成树但是如果暴力去做的话 肯定会爆时间 n=1e5 边数就是n的平方级别的 我们需要去优化建立生成树的过程 有一个明显的想法是 从最高位开始 我们把当前位为0的分成一块 为1的分成一块 那么肯定是所有为1的在一个联通块内 所有为0的在一个联通块内 因为这样的话 为1的联通块的边权会尽量小 为0的联通块也是那...原创 2020-07-27 08:58:33 · 199 阅读 · 0 评论 -
P4592 [TJOI2018]异或 树上可持久化trie
树上可持久化trie的板子 第一棵树按照dfs序建立 第二棵树按照遍历顺序直接在父节点的基础上建立空间开N*50 开个N*30wa了 也不re de了半天bug#include<bits/stdc++.h>#define R register intusing namespace std;const int N = 1e5+100;int h[N],to[N<<1],nex[N<<1],cur,val[N],lg[N],fa[N][30],dep...原创 2020-06-12 11:01:44 · 115 阅读 · 0 评论 -
HDU - 5790 Prefix 求区间不同种数的变形
我们先看一个简单的问题 给你一个数组 q次询问 每个询问 给l和r 问区间l到r有多少种不同的数这个可以离线树状数组 ,离线线段树,还可以莫队 但是现在我要你在线解决那么就只能用主席树了 还是那个套路 我们建立第0棵树 然后在0棵树的基础上建立第一颗树 然后在第一棵树的基础上建立第2棵树。。。以此类推 如果我们在建立第i棵树时 发现val[i]在前面已经出现了 我们记录这个位置 然后在第i棵树里面 让这个位置-1 然后在i位置+1 这样对于询问l,r 我们查询第r棵树里面 ...原创 2020-05-22 09:46:41 · 1069 阅读 · 0 评论