上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
摘要: 和平常的树链剖分维护边权不同的地方在于对线段树的要求较高 NEGATE 反转区间,也就是a - b 内所有的边权取相反数 而Query询问是最大值,所以也就是维护可取反区间的最大值问题 需要维护的值是区间最大值,区间最小值(反转取件后交换其值),lazy标记(优化加速,标记完全反转最大区间) int 阅读全文
posted @ 2018-09-06 22:25 Butterflier 阅读(193) 评论(0) 推荐(0) 编辑
摘要: https://vjudge.net/contest/251031#problem/Dhttps://blog.csdn.net/kirito_acmer/article/details/51201994树链剖分加线段树染色维护我的难点在于线段树的维护 lc,rc,nc,lazy lc rc 主要是 阅读全文
posted @ 2018-09-05 22:54 Butterflier 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 比较水的题了,比模板题还要简单一点 理解了这个结构,自己打出来的,但是小错误还是很多,越来越熟练吧希望 错误函数updata,updata_lca,query||错误地方区间往下递归的时候是left <= mid || right > mid //https://vjudge.net/contest 阅读全文
posted @ 2018-09-04 10:09 Butterflier 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 对于一个树的图,有如下概念 重结点:子树结点数目最多的结点; 轻节点:父亲节点中除了重结点以外的结点; 重边:父亲结点和重结点连成的边; 轻边:父亲节点和轻节点连成的边; 重链:由多条重边连接而成的路径; 轻链:由多条轻边连接而成的路径; 基本原理,就是对于一组树形的数据结构的操作区间 阅读全文
posted @ 2018-09-03 14:37 Butterflier 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 求矩形的并的周长依然是利用扫描线计算横线的长度需要考虑的就是重合的情况,我们每次计算当前扫过后覆盖的长度,然后减去上一次覆盖的长度的绝度之,就是这一次的增加量 然后对于y轴的长度我们需要知道有几个分开的区间段,假设有m个我们的增量就是 2 * m * △y,有一个缺陷如果2 3 和 3 4都被覆盖那 阅读全文
posted @ 2018-08-16 19:12 Butterflier 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 关于扫描线的存储,离散化就不多说了 #include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <string.h> #define lson rt<<1,left,mid #define 阅读全文
posted @ 2018-08-16 18:54 Butterflier 阅读(261) 评论(0) 推荐(0) 编辑
摘要: POJ 1151 Atlantis(线段树+扫描线) 参考博客https://blog.csdn.net/lwt36/article/details/48908031 上面博客的原理讲解非常清楚 在这我只对代码的模板分层讲解 一些基础的 #include <iostream> #include <c 阅读全文
posted @ 2018-08-13 16:03 Butterflier 阅读(192) 评论(0) 推荐(0) 编辑
摘要: Description 有一台起重机。我们把起重机看作由N条线段依次首尾相接而成。第i条线段的长度是Li。最开始,所有的线段都笔直连接,指向上方。现有C条操纵起重机的指令。指令i给出两个整数Si和Ai,效果是使线段Si和Si+1之间的角度变成Ao度。其中角度指的是从线段Si开始沿逆时针方向旋转到Si 阅读全文
posted @ 2018-08-08 19:12 Butterflier 阅读(210) 评论(0) 推荐(0) 编辑
摘要: Description 输入n个有序对< pi, vi >,pi表示在第pi个位置后面插入一个值为vi的人,并且pi是不降的。输出最终得到的v的序列 Input 多组用例,每组用例第一行为有序对组数n,之后n行每行两个整数表示一个有序对,以n=0结束输入 Output 对于每组用例,输出最后得到的序 阅读全文
posted @ 2018-08-08 14:45 Butterflier 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 问题类型:是多次询问一个大区间里子区间的最值问题 dp + 位运算的思想处理 rmax[i][j]表示从i开始到i + 2^j - 1的区间里的最大值dp[i][j] (i,i + 2^j - 1)分为 dp[i][j-1] (i,i + 2^(j-1) - 1)dp[i + 1 << (j-1)) 阅读全文
posted @ 2018-08-06 20:25 Butterflier 阅读(175) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页