线段树
Grit_ICPC
Dielts
展开
-
敌兵布阵 HDOJ
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 57127 Accepted Submission(s): 24106Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以原创 2015-07-30 09:43:39 · 490 阅读 · 0 评论 -
线段树区间更新延迟标记
A Simple Problem with Integers Time Limit : 10000/5000ms (Java/Other) Memory Limit : 262144/131072K (Java/Other)Total Submission(s) : 50 Accepted Submission(s) : 23Problem Description You have N原创 2016-02-26 15:29:54 · 663 阅读 · 0 评论 -
POJ 2828 Buy Tickets(线段树单点更新)
大意:有n个人在排队,接下来n行每行有两个数 k,m分别代表m要插在第k个人的后边,求最终的序列。思路:先建立区间树,然后进行区间缩减,如果正者建图的话,有可能被其他的数挤下去,所以可以从后向前建树,这样就是个稳定的序列了,注意在查询的时候向右子区间取得时候应当改变存放位置,为当前区间的x-sum[rt<<1].#include<map>#include<queue>#include<cmath原创 2016-02-26 11:08:55 · 479 阅读 · 0 评论 -
两颗线段树
大意:有n个操作(n<=10000),接下来有n行,分别为k,m,k==0为在m处插入一条从m到m+i的线段(i为第i次插入)。k==1为删除第m次的线段插入。问插入线段能完全的包含多少完整的线段。思路:用1-m+i内有的端点数-1-m内的端点数=包含的线段数目。分别用两棵树来保存 点的数目。#include<algorithm>#include<cmath>#include<queue>#i原创 2016-03-20 12:01:35 · 439 阅读 · 0 评论 -
HDU 1556 Color the ball(线段树)
思路: 法一:直接标记两个端点最后一直用dp[i]+=dp[i+1],向后推即可。 法二:线段树区间更新。#include<map>#include<queue>#include<cmath>#include<iostream>#include<cstdio>#include<stack>#include<cstring>#include<algorithm>#defin原创 2016-03-06 13:31:34 · 404 阅读 · 0 评论 -
POJ 2352 Stars (区间建树,单点更新)
思路:刚开始自己没有想到建图的方式,参考了他人的方法明白过来,将x轴当做区间,一边查找一边更新。更新的话就是将当前的数加入到合适位置的和中去,即可。#include#include#include#include#include#include#define LL long long#define inf 0x3f3f3f3f#define ls l,mid,rt<<1原创 2015-12-04 21:22:53 · 386 阅读 · 0 评论 -
POJ A Simple Problem with Integers 3468(线段树区间更新)
注意在查询的时候还要进行更新。#include#include#include#include#include#include#define LL long long#define inf 0x3f3f3f3f#define ls l,mid,rt<<1#define rs mid+1,r,rt<<1|1LL n,sum[1000100],la[1000100];原创 2015-12-03 23:31:03 · 435 阅读 · 0 评论 -
CodeForces 339D D. Xenia and Bit Operations(线段树的单点更新)
此题的时间复杂度要求的有点高,所以普通的方法肯定超时.由于时类似于单点更新的所以可以用线段树,主要就是解决层数的用|还是^的问题.所以单设一个数组来记录当前的层数问题.#include #include #include #include #include #include #include #define inf 0x3f3f3f3f;#define ls原创 2015-11-01 16:19:31 · 487 阅读 · 0 评论 -
线段树求解区间最大最小值(模板)
题目描述第一行:输入两个正整数;第二行:输入n个整数 大小范围为[1,100000];接下来的m行,每次两个正整数l,r (1输出[l,r]. 示例输入6 31734251 54 62 2示例输出630#include#include#include#include#de原创 2015-08-29 22:54:05 · 1511 阅读 · 0 评论 -
POJ 2777Count Color (线段树区间更新 + 位运算压缩)
大意:给定长度l的木板,m种颜色,k个操作,询问时木板有多少种颜色?思路:直接给区间染色不容易那么可以间接的化成多少个2相乘的形式,向上给父区间更新的时候直接|,(若相同则不加,否则相加最后求1的个数)。#include<cstdio>#include<cmath>#include<cstring>#include<string>#include<algorithm>#define ls原创 2016-02-27 09:49:24 · 419 阅读 · 0 评论