
ACM_线段树
Rotepad
语言表述能力不行,在前面解释的不清,但是在代码中基本上每一个难懂的语句都在旁边有注释进行解释。
因为个人习惯带着代码去看题解,所以习惯把题解切入代码中,所以希望大家不要看到没什么解释就不看了,实际上后面的代码写的很详细
展开
-
Codeforces-339D-Xenia and Bit Operations(线段树)
题目:Description:Xenia the beginner programmer has a sequencea, consisting of2nnon-negative integers:a1, a2, ..., a2n. Xenia is currently studying bit operations. To better understand how they w...原创 2019-07-22 15:42:51 · 265 阅读 · 0 评论 -
ZOJ - 2301- Color the Ball(线段树区间染色+离散化)
题目:ZOJ - 2301题意:有无数多个球,每个球最初被染成了黑色,有n个操作,把从l到r的球染成黑色或者白色,问n个操作后,统计哪段区间白色最长。题解:这个题目跟POJ - 2528很相似,推荐先去做做这个题目,离散化操作,以离散化后的数组下标作为线段树的建树区间,但是这里要注意一下,不同于POJ-2528,那个题目要求的是最终有多少种颜色,不精确到具体区间,那么我只需要在间距大于1的...原创 2019-09-28 10:45:43 · 247 阅读 · 0 评论 -
POJ - 2528 - Mayor's posters (线段树区间覆盖+离散化)
题目:POJ - 2528题意:n个人依次贴海报,给出每张海报所贴的范围li,ri 。求出最后还能看见多少张海报。题解:因为范围过大,所以我们考虑离散化,离散化之后把数组的下标作为线段树建树的区间,但是要注意:如下面的例子(题目的样例),因为单位1是一个单位长度,将下面的123467810—————...原创 2019-09-28 10:21:09 · 265 阅读 · 0 评论 -
HDU - 3308 - LCIS (线段树区间合并)
题目:HDU - 3308题意:n个数字,q个操作,有两种操作:1.Q询问操作:在x,y区间内最长的连续递增子序列的长度。2,替换操作,把下标为x数替换为y.题解:线段树区间操作典型例题,跟POJ-2750很相似,加深了对区间操作的理解代码:#include<bits/stdc++.h>#define N 100005#define lson node<&l...原创 2019-09-26 15:38:00 · 270 阅读 · 0 评论 -
POJ - 2886 - Who Gets the Most Candies? (线段树+反素数+找空位)
题目:POJ - 2886题意:有N个人参加一个游戏,每个人手上都拿了一张卡片,每张卡片的数字都是非0的,现在从第K人开始,第K人离开后,这时候根据第K人手上拿着的卡片的数字,决定下一个人是谁,如果这个数字m为正数,那么其实相当于向右数m个,如果这个数字为负数,那么其实相当于向左数m个数的位置(所有的数法都是要排除自己)。题解:1.由于i的约数的个数是可以求出的,也就是说只需要在N内找...原创 2019-09-24 16:02:11 · 175 阅读 · 0 评论 -
POJ - 2828 - Buy Tickets(线段树逆序找空位)
题目:POJ - 2828题意:n个人插队的问题,每个案例给出n,代表有n个插队的,每个给出p,v,意思是代号为v的人插在了第p个人的后面,问最后的队伍的排列题解:对于这个题目,我们用线段树维护空位,一共有n个空位,那么第n个人一定是坐到了p+1个空位上,记录区间的左右子树空位个数,逆序从n开始处理,对于每个人他应该坐到第p+1个空位上,找到那个空位,并以空位的位置为下标记录这个人的编号...原创 2019-09-24 15:39:44 · 228 阅读 · 0 评论 -
POJ - 2750 - Potted Flower (环形线段树+区间连续线段树)
题目:POJ - 2750题意:给出一个含有N个结点的环,编号分别为1..N,环上的点带有权值(可正可负),现要动态的修改某个点的权值,求每次修改后环上的最大连续和,但不能是整个序列的和(不能是一个圈)题解:线段树维护区间连续最小值,最大值,区间连续最大和,最小和。这个题目帮我搞懂了关于区间连续的线段树,之前一直疑惑左子树中的从左开始最小值会不会不是左子树的第一个,实际上不是,推几个试...原创 2019-09-24 15:12:33 · 487 阅读 · 3 评论 -
POJ - 2777 - Count Color (线段树二进制区间染色)
题目:POJ-2777题意:给出n的长度的木棒,初始的颜色都为1,给出num中颜色,给出m个操作, C l r x 将l到r内的所有颜色更改为x , P l r 问在l到r内有多少种颜色题解:初始化肯定都是颜色1,就表示只有一种颜色,然后每次更新颜色时,取这个数的a[x]=1<<(Item-1),a[x]中的1的位置就表示每个颜色的位置,那么这样或过去就可以查找出有多少种颜色了...原创 2019-09-22 16:11:11 · 379 阅读 · 0 评论 -
CodeForces - 855B - Marvolo Gaunt's Ring(线段树 or DP)
题目:CodeForces - 855B题解:1.用dp做的:dp[0][i]是前i个p*a[i]的最大值,dp[1][i]是在dp[0][i]的基础上加上q*a[i]的最大值,这样可以保证j>=i;dp[2][i]是在dp[1][i]的基础上加上r*a[i]的最大值,这样可以保证k>=j;2.用线段树做的:枚举中间的j,当p>=0的时候,查询(1,i...原创 2019-09-04 13:11:35 · 323 阅读 · 0 评论 -
CodeForces - 438D - The Child and Sequence(线段树+取模操作)
题目:At the children's day, the child came to Picks's house, and messed his house up. Picks was angry at him. A lot of important things were lost, in particular the favorite sequence of Picks.Fortun...原创 2019-08-06 01:49:39 · 171 阅读 · 0 评论 -
Codeforces-1199D-Welfare State + HDU-4306-Gorgeous Sequence(线段树)
Codeforces-1199D-Welfare State:There is a country withnncitizens. Theii-th of them initially hasaiaimoney. The government strictly controls the wealth of its citizens. Whenever a citizen makes ...原创 2019-08-01 17:00:38 · 442 阅读 · 0 评论 -
HDU-3594-Level up(线段树)
Level up Problem Description Level up is the task of all online games. It's very boooooooooring. There is only level up in those games, except level up. In a online game, there are N her...原创 2019-08-05 01:26:25 · 312 阅读 · 0 评论 -
BZOJ - 5028 -小Z的加油店(线段树+区间更新+gcd)
题目:BZOJ - 5028题解:扩展裴蜀定理+差分+线段树求从l到r的最小能得到的油量就是求l~r范围内a[i]的gcd由性质gcd(a,b)=gcd(a,b-a)可得区间gcd可变为:gcd( a[l], a[l+1], a[l+2],..., a[r] ) = gcd( a[l], a[l+1] - a[l] , a[l+2] - a[l+1] ,..., a[r] - ...原创 2019-09-29 15:13:10 · 255 阅读 · 0 评论