
线段树
smilestruggler
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Educational Codeforces Round 81 (Rated for Div. 2) E. Permutation Separation(线段树)
题目链接:https://codeforces.com/contest/1295/problem/E 题目大意: 有一个序列,是1~n的某一种排序,取一个位置将它分为前缀和后缀,分别形成一个集合。将一个数字移到另一个集合需要p[i]p[i]p[i]的代价,问使得第一个集合中所有的数字都小于第二个集合中的所有数字(就是第一个集合中最大的数字要小于第二个集合中最小的数字)的最小代价,...原创 2020-02-07 00:23:41 · 273 阅读 · 0 评论 -
NEERC 2017-2018 A Archery Tournament(分块or动态加点线段树)
题目链接:https://codeforces.com/group/xrTA2IaQje/contest/254939/attachments题目大意:1表示加一个中心在x,y的靶子,半径为y,2表示往x,y射一枪,如果一个靶子都射不中输出-1,否则输出被射中的靶子是第几个操作被加入的并删除这个靶子,保证每个靶子之间没有交叉题目思路:方法1:直接暴力分块,每左边x-y能...原创 2019-10-06 18:40:46 · 281 阅读 · 0 评论 -
2019牛客暑期多校训练营(第十场) F Popping Balloons(线段树)
题目链接:https://ac.nowcoder.com/acm/contest/890/F题目大意:有n个气球,现在可以选择射破三行气球和三列气球,而且保证相邻行和列间距相同,问最多能射裂多少气球题目思路:比赛的时候看到时限这么长就畏惧了..其实非常非常简单..首先先处理一个vector,放一行都有哪些纵坐标有气球可以射,一个num处理每一列有多少个气球,线段树建树,每个节点...原创 2019-08-18 13:55:14 · 306 阅读 · 2 评论 -
2019牛客暑期多校训练营(第二场)E MAZE(线段树维护矩阵+DP)
题目链接:https://ac.nowcoder.com/acm/contest/882/E题目大意:给一个地图,只能向左向右向下,且走过的地方不能再走,有两种操作,一种是让x y处反转,一种是问1 x到n y有几种方式。题目思路:考虑DP,dp[i][j]能由它上面一片连着的0的地方过来,而且由于走过的路不能再走,每个人只有一种走法。所以联想到矩阵乘法,通过矩阵乘法获得最后的...原创 2019-08-07 09:53:58 · 324 阅读 · 0 评论 -
HDU 6562 2018CCPC吉林赛站H题(硬核线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6562题目大意:有n个空串,两种操作,第一种操作是让l到r区间内的串开头结尾加上d,比如之前是33,d是5,那就变成5335,另一个操作是l到r区间内的所有串求和并输出题目思路:讲道理,直接自闭,太难打了。。线段树需要维护五个变量,分别是表示的区间的和sum,表示的区间的数字长度le...原创 2019-07-28 17:25:46 · 258 阅读 · 0 评论 -
BZOJ 3224 Tyvj 1728 普通平衡树(权值线段树)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3224题目大意:您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前驱(前驱定义为小于x,...原创 2019-03-27 20:28:43 · 326 阅读 · 0 评论 -
HDU 2852(权值线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2852题目大意:一共存在三种操作,插入一个数字,删除一个数字,查找大于x的第k大数字是几题目思路:权值线段树维护每个区间内的数字出现过的次数,插入一个数字就是对应的地方+1,删除就是-1,大于x的第k大,首先得到1~x有多少个数字,这样大于x的第k大就相当于第num+k大数字。...原创 2019-03-27 12:12:24 · 379 阅读 · 0 评论 -
Codeforces Round #291 (Div. 2) D. R2D2 and Droid Army(线段树+二分)
题目链接:https://codeforces.com/contest/514/problem/D 题目大意:给n个机器人,每个机器人有m个属性,可以针对每个属性都发出相应的攻击,要求总攻击<=k,而且连续被摧毁的机器人数最多,每个机器人所有的属性都变为0时视为被摧毁。 题目思路:建五棵线段树,分别维护各个属性,然后二分枚举连续机器人个数,暴力求解该人数情况下是否能够符合题意...原创 2019-02-16 16:44:33 · 142 阅读 · 0 评论 -
POJ 1177(扫描线 轮廓线)
题目链接:http://poj.org/problem?id=1177 题目大意:求多个矩形重合后的周长和 题目思路:从上到下来一遍扫描线,从左到右来一遍扫描线。然后每次更新线段树后整体解与之前的结果相减取绝对值就是新的周长。可以画图理解。 以下是代码:#include<iostream>#include<cstdio>#include&l...原创 2019-02-03 22:47:13 · 325 阅读 · 0 评论 -
HDU 1255(扫描线)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255 题目大意:求至少两次覆盖的面积大小。 题目思路:之前还以为跟那个面积并一样。。直接上来就把cnt改成>=2,样例都没过。。后来看了题解才发现。因为update是到了符合要求的地方就停了,儿子们怎么样它并不知道,所以我们还需要维护一次的,如果这个地方是一次的,那就看它儿子中满...原创 2019-02-03 21:51:57 · 219 阅读 · 0 评论 -
POJ 1151/HDU 1542(扫描线)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1542 题目大意:求多个矩形面积并 题目思路:易得每次突变都出现在矩形的边上,所以可以专门针对边进行处理。假设是从左到右扫,那么一段区间内的面积可以等价于扫描线接触的长度*这段区间的x,所以问题转化为现在扫描线上有多少长度是还存在的。可以将矩形的左边出现时这一段纵坐标+1,右边出现时-1...原创 2019-02-03 20:47:11 · 163 阅读 · 0 评论 -
POJ 3667(线段树找连续m个点区间的最左端)
题目链接:http://poj.org/problem?id=3667 题目大意:两个操作,1 x表示找出最左连着的x个空位置,并占满,输出最左端,2 x y表示清空x到y位置 题目思路:逆向思维,空位置用1,占了的位置用0。然后就是基础的线段树区间合并,跟炸地道那题的x所在1长度方法是一样的。维护最左连续1,最右连续1和最长连续1。维护方法跟那题一样,可以看之前的博客。然后这题的...原创 2019-02-03 16:33:39 · 305 阅读 · 0 评论 -
HDU 4578(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4578 题目大意:有四个操作,1、对l到r数字全加c 2、对l到r数字全乘以c 3、对l到r数字全变成c 4.查询l到r中数字p次方和 题目思路:操作相当多,但是我们可以把他简化成两个:加和乘。对于一个乘可以理解成乘标记*这个数字,同时加标记*这个数字。如果只有一个加,那就直接加标记+这...原创 2019-02-03 00:21:44 · 844 阅读 · 0 评论 -
HDU 1540(线段树区间合并)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1540 题目大意:三种操作,D销毁一个城市,R复活最近摧毁的一个城市,Q询问x所在城市所在的连续存活城市长度。 题目思路:1表示存活,0表示摧毁,则求得就是x所在的1的长度。维护三个量,线段中最左边1的长度,线段中最右边1的长度,线段中最长的1的长度,分别用l1,r1,m1表示。所以更新...原创 2019-02-02 18:44:20 · 199 阅读 · 0 评论 -
POJ 2528(线段树+离散化)
题目链接:http://poj.org/problem?id=2528 题目大意:每个人贴一个区间的海报,问最后多少人的海报能露出来。 题目大意:太菜了完全不知道怎么用线段树搞,后来百度了题解才知道用线段树维护区间然后染色就行。贴海报就整个区间染成对应的颜色,最后数一下整个区间有几种颜色就行。有一个坑点就是数据范围特别大,但是不用虚,可以离散化,还有一个坑点就是离散化不能瞎离散化,...原创 2019-02-02 11:42:43 · 400 阅读 · 0 评论 -
BZOJ 2957(线段树)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2957 题目大意:n个位置,m次建楼,每次建楼输入x y,把第x个地方的楼高度变成y,问从0 0抬头看能看到几个房子 题目思路:很容易想到问的是斜率变大的次数,这里需要用到线段树来维护。首先修改一个点很简单,不断地找他的位置就行,找到这个点以后,把这个点的最大值改成这个点的...原创 2018-08-19 11:04:31 · 216 阅读 · 0 评论 -
HDU 1754(线段树)
题目链接:点击打开链接题目大意:n个数字,m次操作,Q i j是查询i到j学生最高分,U i j是修改第i个学生的成绩为j。题目思路:线段树区间最值模板题..参照了好多模板才把我的区间求和模板变成了区间最值..现在好像两个模板在我脑海里有点打架了..慢慢来吧应该会好起来的。。以下是代码:#include<iostream>#include<cstdio>#include...原创 2018-05-06 15:53:00 · 281 阅读 · 0 评论 -
HDU 1166(线段树)
题目链接:点击打开链接题目大意:给你n个数字,四种命令,end结束,add i j给第i个数字加j,sub i j给第i个数字减j,query i,j查询i到j区间和题目思路:纯线段树模板题..搞了几个小时终于可以在不看题解的情况下弄出来了主要参考kuangbin大佬模板,再次感谢build函数建立线段树。输入也是这个时候。不断的递归拆成两半,直到剩下一个数字就输入,同时递归的时候有加和操作,顺便...原创 2018-05-06 12:59:20 · 283 阅读 · 0 评论