上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 23 下一页
摘要: 扫描线算法+线段树维护简介: 像这种求面积的并集的题目,就适合用扫描线算法解决,具体来说就是这样 类似这种给出点的矩形的对角的点的坐标,然后求出所有矩形面积的交集的问题,可以采用扫描线算法解决。图如下,我们要求红色部分的面积: 我们可以通过一条叫扫描线的东西解决问题。具体来说: 我们首先给自己一条线 阅读全文
posted @ 2019-02-09 16:57 bluefly-hrbust 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 这个题题意我大概解释一下,就是一开始一条直线,上面的点全是联通的,有三种操作 1.操作D把从左往右第x个村庄摧毁,然后断开两边的联通。 2.询问Q节点相联通的最长长度 3.把最后破坏的村庄重建。 这个其实也是非常典型的线段树区间合并,正好可以学一下。 我们给线段树的结点赋予5个值,l 区间左端点, 阅读全文
posted @ 2019-02-01 22:58 bluefly-hrbust 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 这题太坑了。。。满满的都是坑点 1号坑点:给定左右区间有可能是反的。。。因为题目上说x,y之间,但是没有说明x,y的大小关系(害我一直RE到怀疑人生) 2号坑点:开根号的和不等于和开根号(还好避开了) 3号坑点:当你明白了2号坑,你就会选择。。。单点更新,然后你就T飞了。其实一个1e18的数,开不了 阅读全文
posted @ 2019-02-01 11:01 bluefly-hrbust 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 这个是一个经典线段树染色问题,不过题目给的是左右左右坐标,即[0,3]包含0-1这一段 1-2这一段 2-3这一段,和传统的染色不太一样,不过其实也不用太着急。 我们把左边的坐标+1,即可,那么[0,3]其实变成了[1,3]而线段树是按照点询问的,也就是每个点代表的颜色,我们就有了1,2,3,这个三 阅读全文
posted @ 2019-01-31 14:56 bluefly-hrbust 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 这就是很简单的基本的线段树的基本操作,区间修改,区间查询,对区间内部信息打上laze标记,然后维护即可。 我自己做的时候太傻逼了。。。把区间修改写错了,对给定区间进行修改的时候,mid取的是节点的左右的中间值,而不是更新区间的中间值(太菜了)。 阅读全文
posted @ 2019-01-30 19:35 bluefly-hrbust 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 这个题非常有意思的地方是,我们发现区间[1,4]和[5,8]是紧挨着的,因为这个的数代表的是一段区间,原本我们对于普通的离散, a[1]=1,a[2]=5,a[3]=6,a[4]=8;数组下标就是重新离散的位置,但是a[2]和a[3]明显不重叠,为此我们需要重新考虑离散的内容,其实不妨这样,如果区间 阅读全文
posted @ 2019-01-29 23:22 bluefly-hrbust 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 由于是区间求和,因此我们在更新某个节点的时候,需要往上更新节点信息,也就有了tree[root].val=tree[L(root)].val+tree[R(root)].val; 但是我们为了把懒标记打上,当节点表示的区间是完全被询问区间包含,那么这个区间的信息都是有用的,因此我们其实只需要把这个节 阅读全文
posted @ 2019-01-28 10:36 bluefly-hrbust 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 这个也是线段树的经验问题,待修改的,动态询问区间的最大值,只需要每次更新的时候,去把利用子节点的信息进行修改即可以。 注意更新的时候区间的选择,需要对区间进行二分。 阅读全文
posted @ 2019-01-27 15:30 bluefly-hrbust 阅读(326) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; const int maxx = 50030; int arry[maxx]; struct node { int left; int right; int mid; int val; } a[maxx*4]; void pushup(int root... 阅读全文
posted @ 2019-01-27 11:43 bluefly-hrbust 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 这个也是一个线段树的模板 题,只需要添加laze标记,并且在不断的维护中,保存更新并pushdown下去,然后为了避免重复,搞一个set就行。 阅读全文
posted @ 2019-01-26 23:03 bluefly-hrbust 阅读(404) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 23 下一页