上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 21 下一页
摘要: 题目链接 "luogu" 思路 可以说是线段树合并的练手题目吧 也没啥说的,就是dfs,然后合并、、、 看代码吧 错误 和写主席树错的差不多 都是变量写错、、、、 代码 cpp include define FOR(i,a,b) for(int i=a;i'9'||s='0'&&s t[maxn]; 阅读全文
posted @ 2018-12-10 16:33 ComplexPug 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 顾名思义 就是两颗线段树合成一个线段树 那合成的线段树是适合所有线段树吗 当然不是,是动态开点线段树 建树 这里建n个节点的时候,每个节点建一棵树 而且要按照一定的形态建立一条链 就是说如果最终形态是有n个数字的树, 那你初始化的那一条链子一定是这颗树上扣下来的 这样才方便合并 merge操作 最重 阅读全文
posted @ 2018-12-10 14:20 ComplexPug 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 思路 这里的初始化就不讲了,看完操作讲解就应该明白了,再不行就去看代码 对于操作1 由于操作2的需要,vector[n]存下数 对于操作2的维护 查询相邻两个元素的之间差值(绝对值)的最小值 先把所有答案存入一个小头堆里 比如 a,c之间你要插入b 那么,你就要删除|c a|,然后加入|a b|,| 阅读全文
posted @ 2018-12-10 10:19 ComplexPug 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 思路 并查集+fhqtreap 合并的时候由于是大小不一,所以不能直接合并 所以我们就暴力合并喽 对,就是那种很暴力的把小的往大的身上靠 他们说是启发式合并 抄一波博客 然后不就A了 错误 合并写的没毛病呀,最后看着题解改了改就过了? 明明差不多 代码 cpp // luogu judger ena 阅读全文
posted @ 2018-12-09 21:40 ComplexPug 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 思路 终于做了一个简单题,233 先对区间拍个序 因为他说所有区间互不包含 所以排序之后可以双指针l,r指呀指 容易得到 这样每个值最多插入删除一边 一次操作logn 总复杂度nlogn 代码 cpp include define FOR(i,a,b) for(int i=a;i'9'||s='0' 阅读全文
posted @ 2018-12-09 17:10 ComplexPug 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 思路 一开始写fhq treap 感觉越写越感觉splay好些,就去splay 然后维护序列 注意前驱后继的不存在的情况 但不用插入虚拟节点(那插入岂不太麻烦) 跑的真慢的一批,splay太多了 错误 好多错误 只好对拍 代码 cpp //这个题用treap似乎小题大做了,所以我用splay inc 阅读全文
posted @ 2018-12-09 16:28 ComplexPug 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 思路 超级恶心的pushdown 昏天黑地的调 让我想起了我那前几个月的线段树2 错误 这恶心的一道题终于过了 太多错误,简直说不过来 pushup pushdown 主要就是这俩不太清晰,乱pushdown 其他的写的还没啥毛病(能看出来) 代码 cpp include include inclu 阅读全文
posted @ 2018-12-08 09:57 ComplexPug 阅读(115) 评论(0) 推荐(0) 编辑
摘要: [TOC] 前言 其实我感觉俩就够了,lmc还得让学替罪羊 旋转维持 分裂维护 拍扁维护 齐全了 "请点击ikka大爷的讲解" 我不会指针,所以数组模拟、、 回收可真麻烦,看来以后还得学指针那 感觉写完就会弃掉 updat:不是感觉,是一定,怎么我感觉比splay还麻烦 要点||摘录 好像就是一颗普 阅读全文
posted @ 2018-12-06 19:27 ComplexPug 阅读(168) 评论(0) 推荐(0) 编辑
摘要: [TOC] 题目 "luogu" 思路 每次都是插入比之前所有数字大的数,所以之前的答案就不会改变 用fhq treap求出原序列,然后用树状数组依次算出每个值得lis(显然g[i]=g[i j]+1) 然后答案就是前i个得最大值(答案一定是不降的) 这里具体讲一下fhq treap 如果你还是维护 阅读全文
posted @ 2018-12-04 16:56 ComplexPug 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 思路 splay确实有点绕 还是fhq treap牛逼啊,构造完美二叉树(他们说笛卡尔树),就不用rand的,直接计算就好 时间也不慢 代码 cpp] include define FOR(i,a,b) for(int i=a;i'9'||s='0'&&sr) return 0; int mid=( 阅读全文
posted @ 2018-12-01 20:26 ComplexPug 阅读(117) 评论(0) 推荐(0) 编辑
摘要: [TOC] 可持久化fhq treap 支持查询历史版本的非旋treap luogu扣图: 先看看为啥他可以可持久化 由于fhq Treap是没有旋转操作的 所以每次操作后的其它没有操作的节点间的关系不变 而有旋转平衡树是要改变的,所以就不大能进行可持久化了 过程 回想,主席树的方法: 每次用log 阅读全文
posted @ 2018-12-01 14:33 ComplexPug 阅读(450) 评论(0) 推荐(0) 编辑
摘要: [TOC] 题目 "luogu" csdn好像限制了展开博客次数,真的好xx 思路 显然一段区间内的值一定是他的中位数 少一点比多一点好 然后就可以枚举区间了 区间答案为 val[mid] 小于val[mid]的+大于val[mid] val[mid]的所有值 就是size[x] val[mid] 阅读全文
posted @ 2018-12-01 06:49 ComplexPug 阅读(154) 评论(0) 推荐(0) 编辑
摘要: fhq treap [TOC] 碎碎念 我咋感觉合并这么像左偏树呢 ps:难道你们的treap都是小头堆的吗 "fhq" 真的是神人 现在看以前学的splay是有点恶心,尤其是压行压不过fhqtreap 点一下 fhq treap主要操作就俩 拆(merge)和合(split) 其他操作都是基于这俩 阅读全文
posted @ 2018-11-29 21:35 ComplexPug 阅读(287) 评论(0) 推荐(0) 编辑
摘要: [TOC] 题目 "luogu" 原来左偏树真的能懒惰下放 那 "这篇博客" 应该要咕咕了 一开始我按照那篇博客想了一下,感觉emm,还是瞄了一眼看到了pushdown 思路 类似线段树2的pushdown,不过是套在了左偏树 其他也就没啥了 ans1直接删除统计 ans2就初始深度 死亡深度(树的 阅读全文
posted @ 2018-11-29 18:53 ComplexPug 阅读(122) 评论(0) 推荐(0) 编辑
摘要: [TOC] 题目 "luoguP3066" 思路 虽说这个题目有多种做法,但 左偏树算法: 我们发现这个合并的时候并不好合并,因为存的值不是固定的 那我们是不是可以lazy数组呢 因为是两个颗树合并,显然是步阔以的 那就转换一下思路,什么是固定的呢 那就是1到i的路径 我们可以dfs出val[i]表 阅读全文
posted @ 2018-11-27 21:23 ComplexPug 阅读(124) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 21 下一页