![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树(数据结构)
文章平均质量分 86
ZSGG_ACM
既然选择了ACM了,那就好好爱它,不管风雨兼程.
展开
-
2014-multi-university-training-contest-5-Inversion (离散化加线段树)
InversionTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1648 Accepted Submission(s): 458Problem Description bobo has a seq原创 2014-08-06 15:52:45 · 738 阅读 · 0 评论 -
1364 最大字典序排列
萌萌哒的传送门System Messag 大神的题解。这个题目明显是要贪心的。从前往后每次看看能不能拿一个大的放到当前数字的前面,而且要拿尽可能大的。这样字典序才会变成最大。原数组设为a[i]这个过程可以用线段树来维护。先按照原数组建立线段树。树结点中记录最大值,最大值所在位置,当前区间有几个数字没有被删除。然后从前往后开始,设当前位置为P,剩K步可以拿,那么就要从P后原创 2015-12-21 20:48:51 · 2325 阅读 · 0 评论 -
1376 最长递增子序列的数量(线段树加DP)
萌萌哒的链接题解:题目在求一串序列的最长递增子序列的基础上,再求其数量。看到题目的数的范围,一眼就应该想到先离散。离散完后,再仔细想想,咦,不是可以用n^2的dp做吗? 对于序列的第i位,其最优子结构为求出值比a[i]小的且当前最长递增子序列是最大的。然后我们再加个计数就行了?。。。。事实证明这个不妥,因为题目的序列最大有50000,n^2的算法一秒之内肯定过不了。于是我们原创 2016-01-05 20:30:10 · 1188 阅读 · 0 评论 -
51nod(1437 迈克步)
1437 迈克步题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题有n只熊。他们站成一排队伍,从左到右依次1到n编号。第i只熊的高度是ai。一组熊指的队伍中连续的一个子段。组的大小就是熊的数目。而组的力量就是这一组熊中最小的高度。迈克想知道对于所有的组大小为x(1 ≤ x ≤原创 2015-10-14 12:12:28 · 1108 阅读 · 0 评论 -
D. R2D2 and Droid Army(二分加多维线段树查询区间最大值)
简单线段树,直接上代码.#include #include #include #include #include #include #include #include #include #include #define ls u << 1#define rs u << 1 | 1#define lson l, mid, u << 1#define rson mi原创 2015-02-16 19:33:10 · 689 阅读 · 0 评论 -
Can you answer these queries?(线段树之单点更新)
萌萌哒的传送门因为一个long long 范围内的数开方不会超过10次,所以题目就转化为线段树的单点更新问题.#include #include #include #include #include #include #include #include #include #define ls u << 1#define rs u << 1 | 1#d原创 2015-02-14 11:14:46 · 933 阅读 · 0 评论 -
Mayor's posters(线段树之点的成段更新加离散化)
bin神的萌萌哒专题这道题目也是简单区间更新的线段树题目,不过题目的数据范围很大,直接搞,时间空间的花费都会异常的高,所以就要用到离散化来优化时间空间复杂度.何为离散化?........................简单地说就是对于给出的庞大数据进行一种数据上的缩小. 比如给你一段(1,10000)的区间,由于我们要的不是其区间长度,我们只需要知道这段区间的状态如原创 2015-02-13 17:18:38 · 775 阅读 · 0 评论 -
Count the Colors(线段树之区间成段更新)
萌萌哒的传送门这道题目是线段树区间成段更新的应用,我们只需在建立线段树时从原来的左右儿子不相连,改为相连即可以解决此类问题.如从原来的[l,mid] , [mid + 1,r] 改为 [l,mid],[mid,r]即可;/********************* * zoj1610 * * 线段树的区间成段更新 * 延迟标记原创 2015-02-13 00:04:39 · 893 阅读 · 0 评论 -
A Simple Problem with Integers(线段树之区间点的成段更新)
萌萌哒的传送门线段树的另一个知识点,区间点的成段更新,此处需要学习一下一个新的知识点,延迟标记.延迟标记是用来优化线段树的更新和查找的时间复杂度的,总的来说,就是对于当前找到的这一段区间进行标记,然后覆盖其子区间,这样就可以节省时间,不必要去更新到叶子节点去;不过如果下次需要修改到其子区间的话,在把延迟标记传给子区间就行,这就是pushup和pushdown的意义;原创 2015-02-12 21:43:43 · 1281 阅读 · 0 评论 -
Balanced Lineup(线段树之区间查找最大最小值)
传送门线段树的区间查找最大最小值模板.裸的线段树#include #include #include #include #include #include #include #include #include #define ls u << 1#define rs u << 1 | 1#define lson l, mid, u << 1#de原创 2015-02-12 21:30:13 · 1107 阅读 · 0 评论 -
Just a Hook(线段树之点的成段更新)
萌萌哒的传送门/* * hdu 1698 * 线段树的点的成段更新 * 这道题不用预先建树,只需把1号节点延迟标记下就行 */#include #include #include #include #include #include #include #include #include #define ls u << 1#define rs u << 1原创 2015-02-13 11:40:57 · 704 阅读 · 0 评论 -
The Unique MST(次小生成树问题)
A - The Unique MSTTime Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64uSubmitStatusDescriptionGiven a connected undirected graph, tell if its minimum spanning原创 2015-01-22 22:32:58 · 616 阅读 · 0 评论 -
Qin Shi Huang's National Road System
Qin Shi Huang's National Road SystemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4056 Accepted Submission(s): 1399Problem Desc原创 2015-01-28 22:07:43 · 659 阅读 · 0 评论 -
Frequent values(预处理加线段树维护最大值)
Frequent valuesTime Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1112 Accepted Submission(s): 399Problem DescriptionYou are given a原创 2014-08-08 09:35:30 · 713 阅读 · 0 评论 -
1369 - Answering Queries (线段树的单点更新)
1369 - Answering Queries PDF (English)StatisticsForumTime Limit: 3 second(s)Memory Limit: 32 MBThe problem you need to solve here is pretty simp原创 2015-12-05 16:58:44 · 666 阅读 · 0 评论