![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
Winterfell30
这个作者很懒,什么都没留下…
展开
-
BZOJ 1798 [Ahoi2009]维护序列seq (线段树)
题意对于一个给定的序列有3种操作: 1.给一个区间的数乘c 2.给一个区间的数加c 3.查询区间和。思路就是普通的线段树区间更新,因为更新操作有两种,维护两个延迟标记就可以了,不过要注意乘和加在更新时相互之间的关系,在更新乘的时候之前加的数也要相应的乘,更新加的时候之前所乘的数没有改变。代码#include <stdio.h> #include <string.h> #include <ios原创 2016-05-10 17:45:24 · 1022 阅读 · 0 评论 -
CDOJ 1325 卿学姐与基本法 (离散化+区间修改)
题意初始时所有人姿势水平都比较低,然后卿神去给一个区间的人们普及基本法,然后还可以查询某个区间还有多少个人没有被普及基本法。思路因为数据比较大所以我们先离散化一下,注意离散化的小bug(参考poj上的那个海报覆盖问题)。 刚开始全部初始化为0然后update为1,在更新的时候不是很好处理,还是用1表示没学,更新的时候置零比较好处理。代码#include <stdio.h> #include <st原创 2016-05-09 22:54:57 · 1425 阅读 · 0 评论 -
HDOJ 3415 Max Sum of Max-K-sub-sequence(线段树优化DP)
题意给出一个环,求连续的k个数字中连续和最大是是多少,子串的开始下标和结束坐标是多少。思路第一次做这题的时候是在学单调队列的时候,单调队列的做法戳这里 这里我是直接dp搞,dp[i]=sum[i]−min(sum[j])i−k<=j<idp[i] = sum[i] - min(sum[j]) i - k <= j < i 显然直接做复杂度O(nk)是超时的,就用线段树维护一下min(sum[j原创 2016-05-20 21:14:49 · 407 阅读 · 0 评论