二进制分组
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[二进制分组 AC自动机] HDU 4787 GRE Words Revenge
这个如果单次询问的话应该是个AC自动机裸题 多次询问本来可以按时间分治 但是强制在线 就可以用xhr的二进制分组方法 浅谈数据结构题的几个非经典解法 也可以看CA的博客 【从此不怕强制在线】二进制分组学习笔记 大致思想是修改按二进制分组 这样最多log组 每次询问的复杂度会多一个log 合并的均摊复杂度也是log的#include<cstdio> #include<cstdlib> #in原创 2017-01-30 19:44:23 · 741 阅读 · 0 评论 -
[二进制分组] BZOJ 4140 共点圆加强版
其实做法是跟离线一模一样的 只不过强制在线 可以使用二进制分组这个技巧 详见xhr论文 跑的比分治快是smg 一天到晚做数据结构的傻逼选手#include<cstdio> #include<cstdlib> #include<algorithm> #include<vector> #include<cmath> #define pb push_back using namespace st原创 2017-04-09 20:54:44 · 655 阅读 · 0 评论 -
[二进制分组 线段树 || 点分治 分治] UOJ #191 【集训队互测2016】Unknown
详见lzz的集训队论文二进制分组做法二进制分组是在线段树的结构上做的 方便区间查询 至于删除 采用延迟重构的思想 每一层只有最后一个区间是萎的 我们需要递归下去 询问还是O(logn)O(\log n)个节点 重构复杂度势能分析下O(nlogn)O(n\log n) 只有上凸包是有效的 合并的时候采用归并加Graham可以做到O(n)O(n) 不然以我的常数 T的血惨 但是卡内存 只有90分#原创 2017-05-28 11:15:45 · 3460 阅读 · 0 评论 -
[二进制分组 dsu on tree 二次函数] Codechef KILLER Painting Tree
首先我们可以列一个dp 按深度 fuf_u表示链剖分中选择了从uu到当前深度的祖先这条链所能得到的最小答案 我们发现这条链的贡献是一个关于祖先深度二次函数 具体形式我忘了 而其他贡献则是一路上来兄弟子树中的最大值累加 这样就很明确了 是要求对每一个点维护一个二次函数 还要资瓷子树加 查询子树中x=kx=k最小值首先询问一坨二次函数最大值 有一个经典做法来自 BZOJ2646 我们可以维护nn原创 2017-05-19 21:20:12 · 526 阅读 · 0 评论