线段树
单点更新,单点查询。单点更新,区间查询。区间修改,区间查询。线段树的基本操作。
-
POJ 3468 A Simple Problem with Integers 区间修改区间查询。
查询是否有一段连续的区间没有被覆盖,优先找左边的。+ 区间修改。
-
POJ - 3667 Hotel
线段树区间修改,区间亦或,区间求和,区间查询被覆盖的最长长度。综合题。
-
HDU - 3397 Sequence operation
单点修改,查询包含某个点的被覆盖的长度。
-
HDU - 1540 Tunnel Warfare
求区间内颜色的种类数。颜色的总种类很少,区间修改,区间查询。
-
POJ - 2777 Count Color
求区间颜色的种类数,颜色的总种类很多,区间也很大,但是只有一次查询。数据大,需要离散化,离散化的时候要注意了,有可能把原来有颜色的区间离散掉。 但是原题没有考虑这么多。
POJ - 2528 Mayor's posters
扫描线,求面积。
线段树+DP,线段树维护区间最小值。
-
Gym - 100712L Alternating Strings II
给出一个长度为n的序列,把其分成k段连续的子段使得这k段每段中不同数字的个数之和最大 ,线段树优化DP;
-
Codeforces 834D The Bakery
线段树+dfs序。一般dfs 序之后,线段树维护的区间最大值就是当前节点及其子孩子到根节点的最长距离。
此题求一棵树上,从根节点开始,必须经过某一个点,能走的最大距离。每个点上的权值可以修改。
-
HDU snacks
两个操作,一个是区间升序操作,一个是区间降序操作,去整个区间内第k 个数是多少。
二分+线段树。
-
HDU - 5649 DZY Loves Sorting
从00点看楼房,最多能看到多少个楼房,楼房可以修改。问每次修改之后,最多能看到多少。
-
bzoj 2957 楼房重建