随笔分类 -  其他-分治

摘要:因为有正睿的课件 就加一下密码 要的话私戳我哈 update:为了方便去掉了qvq几天后再加上 阅读全文
posted @ 2019-07-29 20:26 hjmmm 阅读(630) 评论(0) 推荐(2)
摘要:DAY2模拟被完爆了w 来学一波线段树分治 原来一直拿它口胡其实没写过。。 然鹅这个东西和线段树的关系 就像点分治和点分树一样 并不用建出来 但遍历顺序是一致的 从上到下 从左儿子到右儿子 访问“线段树”的所有节点 每个节点表示一个区间 当然维护的也是区间里的值 这就要求我们维护的东西满足区间加法 阅读全文
posted @ 2019-04-08 21:33 hjmmm 阅读(154) 评论(0) 推荐(0)
摘要:题面 "bzoj" "luogu" 所有事件按时间排序 按值划分下放 把每一个修改 改成一个删除一个插入 对于一个查询 直接查这个段区间有多少合法点 如果查询值大于等于目标值 进入左区间 如果一个查询无解 那么它要求第k大无解 k 路径长 用lca维护即可 cpp include include i 阅读全文
posted @ 2019-04-05 11:23 hjmmm 阅读(145) 评论(0) 推荐(0)
摘要:题面 "bzoj" 其实就是推一下圆的式子 长成这个样子 假设要查询的点是(x, y) 某个圆心是(p, q) $(x p)^2 + (y q)^2 \leq p^2 + q^2$ 变成 $ \frac{2x}{2y}p + \frac{x^2+y^2}{2y} \leq q$ 那么一个点合法就要对 阅读全文
posted @ 2019-04-04 12:19 hjmmm 阅读(155) 评论(0) 推荐(0)
摘要:题面 "洛谷" 和动态逆序对那道题没有什么区别 把一个交换换成两个删除和两个插入 cpp include include include include include using namespace std; const int N = 1e5 + 5; const double eps = 1e 阅读全文
posted @ 2019-04-03 16:38 hjmmm 阅读(157) 评论(0) 推荐(0)
摘要:题面 "luogu" cdq分治入门 注意删的是值不是位置! cpp include include include include using namespace std; const int N = 1e5 + 5; const int inf = 0x3f3f3f3f; struct Node 阅读全文
posted @ 2019-04-03 10:57 hjmmm 阅读(182) 评论(0) 推荐(0)
摘要:题面 "洛谷" 你有一个长度为n的序列,定义这个序列中每个区间的价值是 $Cost(i,j)=Min(Ai...Aj)∗Max(Ai...Aj)∗(j−i+1)Cost(i,j)=Min(A_{i}...A_{j}) Max(A_{i}...A_{j}) (j i+1)$ 其中,$i,j$是区间的两 阅读全文
posted @ 2019-04-03 10:55 hjmmm 阅读(149) 评论(0) 推荐(0)
摘要:之前写过一篇cdq分治模拟树状数组 附上 "链接" 然鹅属于二位偏序欸 三位偏序怎么做呢? 我们把第一位排好序忽略掉 剩下的在分治中用树状数组维护就好啦 大概思路如下: 1. 判边界,下放分治 2. 对当前范围按第二维,左边的第三维值插入树状数组,右边的查询 3. 像归并排序一样归位 代码如下 cp 阅读全文
posted @ 2019-03-11 18:57 hjmmm 阅读(473) 评论(0) 推荐(0)
摘要:```cpp include include include include include include using namespace std; const int N = (int)1e6 + 5; int n, m; struct Q{ int type, id; long long va 阅读全文
posted @ 2019-03-10 22:26 hjmmm 阅读(208) 评论(0) 推荐(0)
摘要:整体二分 详细讲解与模板 阅读全文
posted @ 2018-08-15 10:40 hjmmm 阅读(173) 评论(0) 推荐(0)
摘要:三分法 简介及模板 阅读全文
posted @ 2018-08-05 17:09 hjmmm 阅读(340) 评论(0) 推荐(0)