![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
线段树
线段树
River_____________
这个作者很懒,什么都没留下…
展开
-
HDU1166:敌兵布阵
HDU1166:敌兵布阵C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。转载 2017-03-19 12:46:59 · 246 阅读 · 0 评论 -
HDU5289 单调队列 or 线段树
1.单调队列类似尺取法的思想,动态维护区间的最大最小值,设出头,尾指针,像尺取法一样移动,遇到不合法区间时尾指针停止移动,头指针向右移动,并计数#include <bits/stdc++.h>using namespace std ;typedef long long LL;deque <LL> Max , Min ;LL T , n , k;LL s[10001...原创 2018-05-11 14:28:13 · 174 阅读 · 0 评论 -
BZOJ1012(线段树单点更新+区间最大值)
现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是非负整数并且在长整范围内。注意:初始时数列...原创 2018-05-10 17:33:46 · 243 阅读 · 0 评论 -
UVA 11235(丑)
不建议看此篇博客!代码写得奇丑无比。前几天做过类似的合并,就那合并试了一发,不知道乱搞就搞过去了。。。在segtree结构体中上维护了l左边界r右边界lx最左边的数字是几rx最右边的数字是几mx个数最多的数字是几ln最左边的数字一共有多少个rn最右边的数字一共有多少个mn个数最多的数字一共有多少个pushup里向上维护也是和区间合并差不多。。。原创 2017-08-23 22:13:11 · 190 阅读 · 0 评论 -
HDU 3974(DFS序 + 线段树lazy)
DFS序: 先序遍历保留进入和离开某个节点的时间(in和out) out-in+1就是以当前结点为根的树上的节点个数,out-in就是非根节点的个数,这样就将关系树转化成了线性。(红色代表进入时间,绿色代表out的时间)这样就得到了每个节点管辖的区间,将标号转化一下,就可以线段树了。#include #include #include #include #include原创 2017-08-22 19:02:17 · 209 阅读 · 0 评论 -
HDU - 1540(区间合并)
第一次做区间合并,对于这种保存区间的还是很不熟悉,向上更新的时候还是没有头绪。区间合并的题目还是需要多写。对于本题而言,就是求一个包含查询节点的连续区间的长度。pushup的时候 需要注意的是,向上更新的时候,一个区间全是没被破坏的情况。#include #define INF 0x3f3f3f3fusing namespace std;int n , m;int q;原创 2017-08-19 20:23:27 · 191 阅读 · 0 评论 -
HDU - 4027(限制更新次数)
对1开方结果不变,当一个区间的所有的数字斗为1(sum[i] == (t[i].r - t[i].l + 1))时,直接return,要不然就会超时。不开long long 会RE。两个case之间有换行。#include #include #include #include #include #define INF 0x3f3f3f3fusing name原创 2017-08-18 16:11:42 · 205 阅读 · 0 评论 -
HDU 1754 (线段树+单点更新+区间查询)
I Hate ItHDU - 1754很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数 N 和原创 2017-04-01 16:42:02 · 273 阅读 · 0 评论 -
Balanced Lineup POJ - 3264(基础线段树)
For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with some of the cows. To keep things原创 2017-04-01 12:30:40 · 322 阅读 · 0 评论 -
跟着卿学姐写线段树。。。 ( 秋实大哥与花 UESTC - 1057)
秋实大哥与花UESTC - 1057秋实大哥是一个儒雅之人,昼听笙歌夜醉眠,若非月下即花前。所以秋实大哥精心照料了很多花朵。现在所有的花朵排成了一行,每朵花有一个愉悦值。秋实大哥每天要对着某一段连续的花朵歌唱,然后这些花朵的愉悦值都会增加一个相同的值v(v可能为负)。同时他想知道每次他唱完歌后这一段连续的花朵的愉悦值总和是多少。Input第一行有一个整数原创 2017-04-01 10:52:59 · 597 阅读 · 0 评论 -
基于线段树的RMQ
const int maxn=1int n;int dat[2&maxn-1];void Init (int n_){ n=1; while(n for(int i=0; i}void update(int k,int a) // 把第k个数的值转换为a{ k+=n-1;//叶子节点 dat[k]=a;原创 2017-03-31 17:44:03 · 941 阅读 · 0 评论