Algorithm_线段树
文章平均质量分 81
niuox
这个作者很懒,什么都没留下…
展开
-
Hdu 1166 排兵布阵
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166最基础的线段树问题。单点更新,区间查找。本题可以用树状数组做,但是线段树除了处理区间求和问题外,还可以处理区间极值问题,所以虽然ZKW树状数组可以取代线段树的求和部分,但是并不能却带线段树在其他领域的功用。#include #include #include #include原创 2013-06-04 12:43:47 · 818 阅读 · 0 评论 -
Sgu 128 Snake
题目连接:http://acm.sgu.ru/problem.php?contest=0&problem=128题意:给出n个点。给这n个点连线,使得满足:1.这n个点连线后形成的折线是闭合的。2.折线必须包含所有的n个点,且只能包含这n个点。3.折线中相邻线段要形成90度的转角。4.每条线段都必须是平行于坐标轴的,也就是说只能有x方向和y方向的线段。5.形成的线段不能自交原创 2013-09-08 10:06:57 · 3333 阅读 · 0 评论 -
Hdu 3887 Counting Offspring \ Poj 3321 Apple Tree \BZOJ 1103 [POI2007]大都市meg
这几个题练习DFS序。问题引入:给定一颗n(n 1、C x y 以节点x的权值修改为y。2、Q x 求出以节点x为根的子树权值和。最直观的做法, 枚举一个子树内所有节点的权值加和。但这种做法的每一次讯问的时间复杂度是O(n)的,很明显无法满足题目的需要,我们需要更优的解法。第一题:http://acm.hdu.edu.cn/showpro原创 2013-08-03 18:57:16 · 1506 阅读 · 0 评论 -
HYSBZ 1878HH的项链
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1878题意:给定一段区间,长度问N,查询某一区间内数值不同的数的个数,共有M个查询。数据范围:N ≤ 50000,M ≤ 200000。这个题的解法并非对每个答案直接查询,而是对询问排序后回答。记一个数组B,起初,对于每个颜色第一次出现的i,B[i]=1。这时,对于左端点原创 2013-08-08 18:56:41 · 788 阅读 · 0 评论 -
Hdu 4391 Paint The Wall
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4391给出一个长度为n(n 1、C l r z 将[l, r]区间内所有点的颜色标为z。2、Q l r z 查询[l, r]区间内颜色为z的点的数目。本题可以用线段树+剪枝优化做。#include #include #include #include原创 2013-08-05 11:41:59 · 1043 阅读 · 0 评论 -
Poj 3667 Hotel
题目链接:http://poj.org/problem?id=3667本题也是线段树区间合并问题。和上一题LCIS类似。题意:1 a:询问是不是有连续长度为a的空房间,有的话住进最左边2 a b:将[a,a+b-1]的房间清空思路:记录区间中最长的空房间#include #include #include using namespace std;#define原创 2013-08-01 15:48:41 · 642 阅读 · 0 评论 -
HOJ1119/HDU1542 Atlantis HOJ1909/POJ1177 Picture
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1542题意:求多个长方形在平面上所覆盖的面积和。扫描线。从下往上扫描,浮点数离散化处理。思路参考:http://www.cnblogs.com/scau20110726/archive/2013/03/21/2972808.html#include #include #include原创 2013-08-01 10:56:40 · 1285 阅读 · 0 评论 -
Poj 2828 Buy Tickets \ Zoj 3635 Cinema in Akiba
这两道题思路是一样的。第一题:http://poj.org/problem?id=2828题意:依次插入人,每个人插入的地方告知,求最终的排位。乍看用链表来做即可,可是这样肯定会超时,不信试试:#include #include #include using namespace std;struct People{ int val; People() {原创 2013-08-01 12:51:54 · 774 阅读 · 0 评论 -
Poj 3468 A Simple Problem with Integers 相关的8种解法
1.递归线段树,完成时标记:#include #include using namespace std;#define N 100009#define lx (x<<1)#define rx (x<<1 | 1)#define MID ((l+r)>>1)#define LL long longint n,q;char c;int a,b,d;int A[N];原创 2012-08-26 23:33:20 · 684 阅读 · 0 评论 -
Poj 3225 Help with Intervals
题目链接:http://poj.org/problem?id=3225题意:题意大概是说原始的空集合S,经过U(并集操作)、I(交集操作)、D(相减操作)、C(反向相减操作)、S(异或操作)后,所形成的集合是什么。思路:我们一个一个操作来分析:(用0和1表示是否包含区间,-1表示该区间内既有包含又有不包含)U:把区间[l,r]覆盖成1I:把[-∞,l)(r,∞]覆盖成0D:原创 2013-07-31 10:39:54 · 1680 阅读 · 0 评论 -
Poj 2528 Mayor's posters
题目链接:http://poj.org/problem?id=2528线段树成段更新。这题关于线段树这个数据结构倒是没什么说的,关键是题意的理解和思路的整理。先不考虑离散化的问题。关于Update,我觉得本身它的Pushdown操作中携带本身题目要求的覆盖的成分,所以Pushdown是必须的。而不需要Pushup。针对于Query操作。网上很多的题解中都没有Pushdown,这是因为本原创 2013-06-10 23:26:50 · 955 阅读 · 0 评论 -
Hdu 1968 Just a Hook
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698前几题练习单点更新,现在联系成段更新。线段树成段更新,需要用到延迟标记。其实延迟标记又分为完成时标记与未完成标记,我们只练习前者。#include #include #include #include #include #include #include #inclu原创 2013-06-09 14:20:35 · 905 阅读 · 0 评论 -
Hdu 2795 Billboard
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795题意:h*w的木板,放进一些1*L的物品,求每次放空间能容纳且最上边的位子思路:每次找到最大值的位子,然后减去L,线段树区间求最值。本题可以先Query再Update,也可以Query和Update一起来。后者明显要快一些://分开写#include #include #i原创 2013-06-06 21:05:39 · 637 阅读 · 0 评论 -
Hdu 1394 Minimum Inversion Number、Poj 2299 Ultra-QuickSort
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题意:求某种规定序列中的最小逆序数。递推比较最小那部分比较简单,就不说了。主要想说:求逆序数可以用构建线段树的方法来做。其实思想和计数排序的思想差不多。每次处理a[i]时,先统计一下已经被计数的前几个数的计数和。(比较的是值。)然后再更新这个计数和。这道题的数据范围和下标范围是一样的,原创 2013-06-06 17:29:40 · 966 阅读 · 0 评论 -
Hdu 1754 I Hate It
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754线段树处理单点更新,区间最值问题模型。。#include #include #include #include #include #include #include #include using namespace std;#define Maxn 200005原创 2013-06-05 12:46:06 · 650 阅读 · 0 评论 -
树状数组和线段树常用模型
树状数组d:树状数组(Fenwick tree,又名binary indexed tree),是一种很实用的数据结构。它通过用节点i,记录数组下标在[ i –2^k + 1, i]这段区间的所有数的信息(其中,k为i的二进制表示中末尾0的个数,设lowbit(i) = 2^k),实现在O(lg n) 时间内对数组数据的查找和更新。树状数组的传统解释图,不能很直观的看出其所能转载 2012-08-26 23:34:58 · 1674 阅读 · 1 评论