![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 55
WeYoungg
这个作者很懒,什么都没留下…
展开
-
hdu5828 Rikka with Sequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5828题意就是维护一个序列,总共有三种操作:1,在l到r这个区间上加一个数字、2,把l到r这个区间的每个数字都开根号(向下取整)、3,查询l到r这个区间的和。由于有开根号这个操作,很难对一段连续的数字进行操作。由于开根号开了几次之后很容易把整段数字变得很小,之后加上数字 后或者再继续开根号时,很原创 2017-03-31 15:27:01 · 367 阅读 · 0 评论 -
武大网络赛D题
D. EventsD.Events 题意是给一个数组,有q次操作,每次对一个区间加上一个数字,然后求这个区间的历史最小值。 这道题真的想了很久,用很多种方法去尝试,其实想明白了真的很简单。 我们建一棵线段树,记录两个东西,一个是区间最小值,一个是区间历史最小值。但是有个非常非常关键点地方,就是当Pushdown的时候,不能直接像普通区间更新一样,如果当前的lazy是负数,而且即将更新下来的la原创 2017-04-12 11:22:43 · 403 阅读 · 0 评论 -
poj 2528 Mayor's posters
题目链接:http://poj.org/problem?id=2528题意是:给一些海报,有左右端点li,ri,先后贴在墙上,后贴的会覆盖前面贴的,问最后能看到几张海报。由于li,ri比较大我们离散一下,然后用线段树,对于第i张海报,把[li,ri]修改为i最后看整棵树里有多少个不一样的数字。离散的时候注意一种情况:1 101 35 10 这种情况如果离散为1 4 ,1原创 2017-04-04 13:02:50 · 232 阅读 · 0 评论 -
HDU3308 LCIS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3308题意是给出一个序列,有两种操作,第一种是询问某个区间的最长的连续上升序列(即LCIS)是多长,第二种是把第A个数字修改为B,题目下标都是从0开始的。对于一个区间,我们假设知道它左右两个子区间的LCIS,那么这个区间的LCIS可能是两者的较大值,也有可能是合并后中间的那一段,比如1 2原创 2017-04-06 12:29:22 · 310 阅读 · 0 评论 -
Codeforces Round #426 (Div. 2) D. The Bakery
题目链接 给一个序列,要求把序列划分成k段,每一段里的权值是这一段里不同数字的个数。求如何划分使得k个区间的权值和最大。 我们容易想到dp[i][j]代表前j个分为i段时的最大值 dp[i][j] = dp[i-1][k] + size(k+1 , j) ( 0<=k<j ) //size(a,b)表示a到b这个区间里有多少个不同数字但是这显然是个二维的方程,比赛时怎么都原创 2017-08-06 15:49:05 · 444 阅读 · 0 评论 -
hdu6070
多校第四场1004Dirt Ratio 这个题意提炼出来就是让我们求一个序列中有区间中的不同数字和该区间长度的比值的最小值。 这个题目十分巧妙,因为之前刚刚写过codeforces上的一个类似题目,详见这里 : Codeforces Round #426 (Div. 2) D. The Bakery 当时做多校的时候有往这个方面去想但是又不知道怎么去做,看了题解后才有总结。原创 2017-08-06 16:23:44 · 396 阅读 · 0 评论 -
hdu5238(中国剩余定理+线段树)
hdu5238题目链接 题意是对于一个数字x,进行一次有n个运算操作的的运算,如*5 +6 ^3,就是对x先*5再+6 再3次幂,然后输出最后的结果对29393取模的答案. 然后接下来有m次操作,有两种,一种是可以把某个运算符修改掉.另一种是把给x赋一个值 直接模拟的话复杂度肯定是受不了的.然后查了题解发现可以和中国剩余定理结合起来,中国剩余定理大概就是,当我们知道一个x对几个互质的pi原创 2017-07-29 12:29:08 · 368 阅读 · 0 评论 -
hdu6155
Subsequence Count题目链接 ccpc网络赛1006 题意是给一个01字符串,然后有2种操作, 1、把l到r这个区间的字符翻转, 2、查询l到r这个区间有多少个不同的子序列,(注意是子序列,可不连续),对1e9+7取模 这个题目在比赛的时候过的人很少 其实对于第二种操作,我们容易得到一个dp[i][0/1]代表前i个字符以0/1结尾的不同子序列有多少个,容易得到方程if(s原创 2017-08-21 19:43:28 · 1036 阅读 · 0 评论 -
ABBYY Cup 3.0 E3
E3. Summer Homework(线段树+矩阵)题目链接 题意是给一个序列,支持三种操作 1、把第x个数改为v 2、求l到r之间的和 3、给l到r之间加上一个数字 和函数定义是Sum(l,r) = a[l]*f[0] + a[l+1]*f[1] + a[l+2]*f[2] + ……+a[r]*f[r-l] f[]为斐波那契数列 这个题其实即使没有第一种第三种操作,原创 2017-08-24 11:30:29 · 364 阅读 · 0 评论