线段树
^Rely!-
来自仙都的骚年
展开
-
扫描线学习总结
扫描线是一种重要的计算几何思想. 简单概括起来,就是把图形的边界看成区间,然后对这个区间进行维护处理.在算法设计竞赛中扫描线主要有这几个应用:扫描线求面积并,扫描线求周长,扫描线求图形轮廓线.扫描线求面积并P5490 扫描线P2061 城市的地平线City Horizon观察上面的gif,可以发现,一个图形的总面积就等于每次更新之后的底面积与这一段区间的高度(或者宽度,取决于维护什么方...原创 2019-10-24 09:41:15 · 415 阅读 · 0 评论 -
P2894 [USACO08FEB]酒店Hotel(构建线段树维护区间信息,懒标记)
P2894 [USACO08FEB]酒店Hotel简要题意输入n,mn,mn,m ,表示nnn的初始区间,开始都为空(000),mmm表示以下有mmm个操作.其一,查询房间,表示找到长度为xxx的连续空区间,输出其最左端的元素编号,尽量让这个编号最小,若找不到长度为x的区间,输出000. 然后这个区间变为111.其二,清空区间,清空xxx到x+y−1x+y-1x+y−1的区间的所有元素. ...原创 2019-08-20 12:19:12 · 161 阅读 · 0 评论 -
P3372 线段树1
P3372 线段树1题目分析关于pushdownpushdownpushdown操作,是懒标记(tagtagtag)下放和子节点信息更新的操作,其目的是维护线段树的父节点与子节点之间的关系,在每次更新(updateupdateupdate)和查询(queryqueryquery)子节点操作前都要pushdownpushdownpushdown,以保证更新和查询子节点时子节点的值是正确的. 否则...原创 2019-08-16 08:41:13 · 198 阅读 · 0 评论 -
主席树专题(区间第k小,可持久化数组)
相关题目P3834 主席树(区间第k小)P3919 可持久化数组P3402 可持久化并查集程序实现以下是区间第k小(大)的封装.struct chairmantree{ private : int lc[maxn<<5],rc[maxn<<5],sum[maxn<<5]; public : int build(int ll,int rr)...原创 2019-08-26 19:13:16 · 128 阅读 · 0 评论 -
CF915E Physical Education Lessons(动态开点线段树)
CF915E Physical Education LessonsCodeForces 不允许您多次提交相同的一份代码。如您多次提交相同代码,则有可能会被返回此错误。如确实需要多次提交一份代码,请自行添加一些注释 ~题目大意给出一个数列,初始每个元素都为1,每次操作把区间(l,r)(l,r)(l,r)的所有元素变为1或者0,求每次操作后(1,n)(1,n)(1,n)区间所有元素的和.题...原创 2019-08-27 21:41:29 · 243 阅读 · 1 评论