线段树
浩瀚海洋4018
这个作者很懒,什么都没留下…
展开
-
POJ 3468 A Simple Problem with Integers(线段树 插线问线)
题目链接:http://poj.org/problem?id=3468#include #include #include using namespace std; const int maxn = 100000 + 10; #define lson l, m, rt<<1 #define rson m+1, r, rt<<1|1 long long sum[maxn << 2]; long lo原创 2015-03-15 15:33:34 · 360 阅读 · 0 评论 -
poj2777Count Color(线段树插线问线)
题目链接:http://poj.org/problem?id=2777 线段树的区间替换,区间查询; 每次替换我们可以看作用一种颜色覆盖, 查询最后共可以看到几种颜色,具体就是再开一个表示颜色的数组;在区间查询的时候在区间内出现的颜色都进行标记,最后遍历数组就可以了。这题的区间查询的时候和一般的线段树查询方法有所不同, 一般的都在我们查询的的区间在我门需要的查询的区间内就不在查询了,而这个是在我原创 2015-03-26 11:28:47 · 432 阅读 · 0 评论 -
hdu1166 敌兵布阵(线段树点更新模板题)
题目链接:点击打开链接 大意:敌人有N个营地,一开始知道每个营地的人数。 接下来会询问四种命令:(1) Add i j,i 和 j 为正整数,表示第i个营地增加j个人(j不超过30); (2) Sub i j ,i 和 j 为正整数,表示第i个营地减少j原创 2015-01-25 17:49:20 · 324 阅读 · 0 评论 -
POJ2528Mayor's posters(线段树插线问线)
题目链接:http://poj.org/problem?id=2528 这道题和poj2777的方法是一样的, 只不过数据比较大需要离散化,发现离散化用set还是比较方便的。 每个海报用一种颜色去标记, 求最后能看到几种颜色就可以了。还需要注意离散到的范围是2n,线段树的区间也是2n,另外这道道题的颜色比较多, 不能遍历数组了, 只能在查询的时候就进行计数了。 #include #includ原创 2015-03-26 11:33:18 · 325 阅读 · 0 评论 -
poj2104 (线段树求区间第k大)
题目链接: 题意: 给n个数, 每次询问一个区间, 让你输出区间中的第k大的数。 做了这道题,我对线段树的能解决的问题得认识又有提升。 这个是让求区间内的第k大, 询问比较多,暴力显然不行。 我们想用线段树解题,那么线段树应该保存什么呢? 一开始更本没想到, 看了别人的博客明白了, 原来是把线段树上的每一个区间都变成有序的, 并把这个排列的顺序存在另一个数组里, 我们只在线段树中存下这一段序原创 2015-07-30 10:01:39 · 1992 阅读 · 0 评论 -
HDU5493 Queue(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5493 题意: n个人按身高站队, 给出每个人的身高和前面或后面比他高的人数。 如果可以输出按身高的字典序最小的方案。否则输出 impossible。 分析:用线段树来保存比当前这个人高的人数,用比自己高的人数来确定自己应该的站的位置。 为了保证字典序最小优先线段树的左边。 #include #原创 2015-09-30 09:49:34 · 366 阅读 · 0 评论 -
HDU 4027 Can you answer these queries?(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027 题意:原创 2015-10-26 14:58:33 · 366 阅读 · 0 评论 -
HDU 4819 Mosaic(二维线段树模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4819 题意: 对于二维的矩阵,需要查询一个区域的最大和最小值。 修改单个点的值。 #include #include #include using namespace std; #define _lson _l, _m, _rt<<1 #define _rson _m+1, _r, _rt<<原创 2015-10-29 19:16:41 · 295 阅读 · 0 评论 -
BNUOJ 28887 A Simple Tree Problem(线段树, 区间查询,区间更新)
题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=28887 题意: 给一颗树, 树根为1,节点总数为n。 每个节点都有一个标记,标记只用0和1, 初始化全部为0。 有两种操作: (1)o k; 把以k为跟的树上的节点标记全部取反. (2)q k;求出以k跟的树上节点标记为1的个数,并输出来。 分析: 这道题操作很类似线段的操作, 所原创 2015-07-22 12:17:01 · 468 阅读 · 0 评论