线段树
文章平均质量分 75
wjunyiwd
这个作者很懒,什么都没留下…
展开
-
ZOJ 1610Count the Colors
题意:给定一些操作,不断更新一些区间的颜色,求最后间断每种颜色的个数,直接线段树处理,每次更新,加上lazy标记,注意如何处理区间的端点是这题的关键;#include #include #include #include #include #include #include #include #include #define INF 0x3f3f3f3f #define N 8005 using原创 2017-06-16 00:14:47 · 148 阅读 · 0 评论 -
HDU 2795Billboard
题意:(刚开始没看懂题啊 很僵硬 )大概意思就是给你一个n*m的海报 然后 让你贴小广告,优先往上和往右,很明显要建树,这里对于数的叶子节点要分类考虑,首先n与K的关系,n#include #include #include #include #include #include #include #include #include #define N 200010 #define INF 0原创 2017-06-15 00:06:05 · 160 阅读 · 0 评论 -
HDU 1556Color the ball
题意:线段树水题,区间更新,带上lazy标记即可; #include #include #include #include #include #include #include #include #include #define N 100005 #define INF 0x3f3f3f3f using namespace std; typedef struct node{ int x;int原创 2017-06-14 23:04:42 · 154 阅读 · 0 评论 -
POJ 2299Ultra-QuickSort
题意:线段树求逆序对经典题目,需要离散处理,但是用stl处理的话会T,手动二分处理即可;#include #include #include #include #include #include #include #include #include #define N 500005 using namespace std; typedef struct node{ int x;int y;int原创 2017-06-14 22:37:59 · 144 阅读 · 0 评论 -
HDU 1394Minimum Inversion Number
题意:很水的用线段树求逆序对的题,时间复杂度在nlogn适合初学者,数据较小不用离散化,直接敲即可; #include #include #include #include #include #include #include #include #include #define N 10005 #define INF 0x3f3f3f3f using namespace std; typedef原创 2017-06-14 18:13:18 · 125 阅读 · 0 评论 -
XDOJ 1024: 简单逆序对
题意:这题解法不唯一,我刚学线段树,就直接上线段树了,一般来说求逆序对,对序列离散化,然后对于原序列找出每个元素对应位置,然后依次放入线段树中,查找1-i-1区间,可以找出比a[i]小的数据数,然后用一共比它小的数减去这个数据,即为逆序对; #include #include #include #include #include #include #include #include #inclu原创 2017-06-14 00:33:07 · 377 阅读 · 0 评论 -
XDOJ1156: 等待队列
题意:大概就是有三种操作吧,第一种在队列后面加入新人,引入一个不耐烦程度,第二种第一个人出队(直接让头结点的序号+1即可),第三种统计在队伍里面不耐烦程度最高的数(PS:随着操作的进行队列中每一个人的不耐烦程度+1),刚开始我是将每个节点加入线段树中,对于每个操作,打上lazy标记,用线段树区间维护,然后TLE了,改了又改,在室友的提醒下,原来我可以把每个加入的节点都统一在第一个节点时插入,只要保原创 2017-06-12 22:59:29 · 241 阅读 · 0 评论 -
XDOJ 1009: Josephus环的复仇
思路:通过样例找出规律,大概就是每次线段树维护后,能够确定找到下一个输出的位置,然后把这个位置的叶子节点设置为0,再次维护线段树即可;#include #include #include #include #include #include #include #include #include #include #define N 200005 using namespace std; int原创 2017-06-11 17:08:26 · 317 阅读 · 0 评论 -
HDU 4027Can you answer these queries?
题意:先说下写这题的感受吧,在已知这个题开根号的次数不会超过7次的情况下,还是写了2个多小时,完全整个人都是懵的,出了很多小错误,讲道理,这题就只有要注意开根号的次数,加上类似于剪枝的东西,是能过的,但就是很菜,最后交的手都软了,还得多练练线段树;#include #include #include #include #include #include #include #include #inc原创 2017-06-16 21:16:13 · 189 阅读 · 0 评论 -
POJ 3264Balanced Lineup
题意:线段树水题,区间取最大值最小值即可,不用更新,直接跑; #include #include #include #include #include #include #include #define N 50005 #define INF 0x3f3f3f3f using namespace std; typedef struct node{ int x;int y;int M;int m原创 2017-06-16 00:37:48 · 160 阅读 · 0 评论 -
HDU 1698Just a Hook
题意:水题线段树,区间更新带上+lazy标记,最后统计即可; #include #include #include #include #include #include #include #include #include #define N 100005 using namespace std; typedef struct node{ int x;int y;int date;int p;原创 2017-06-15 14:20:12 · 188 阅读 · 0 评论