![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
线段树
文章平均质量分 70
mid=(l+r)/2
SSL_wj
这个作者很懒,什么都没留下…
展开
-
P3373&&ybtoj【数据结构】4章4题【【模板】线段树2】
【模板】线段树2题目P3373解析前置知识:线段树区间加区间求和好的,现在我们考虑设计懒标记:一个乘,一个加,当然是先乘再加才不会对加产生影响加法直接按区间加下传,乘法就需要两个懒标记一起乘注意:乘法的懒标记初始为1还有就是下传时要先下传乘法,再下传加法剩下的就是板子了哦对了,本题要开long longcode:#include<cstdio>#define int long longusing namespace std;inline bool idigit原创 2021-06-11 18:28:43 · 63 阅读 · 1 评论 -
P4513&&SP1716&&ybtoj【数据结构】4章3题【小白逛公园】
小白逛公园题目P4513解析怎么这题连个longlong都没卡,太不人道了,万一在其他网站上被卡了岂不是误人子弟浓缩题意:写数据结构,支持单点修改,并维护区间最大子段和单点修改……看我写个线段树切了它考虑如何由[l,mid][l,mid][l,mid]和[mid+1,r][mid+1,r][mid+1,r]转移到[l,r][l,r][l,r]显然只有两种可能:1,最优情况来自于一个子节点的最优情况直接转移即可2,最优情况来自于左子节点的一个点到右子节点的一个点显然它贯穿了中间,原创 2021-06-08 22:55:43 · 67 阅读 · 0 评论 -
P3372&&ybtoj【数据结构】2章4题&&4章2题【【模板】线段树1】
【模板】线段树1题目P3372解析线段树区间查改的方法已经在【模板】树状数组1中讲过了,所以这里只讲树状数组:首先考虑支持区间修改什么?区间查询?让它滚吧,不难发现只要差分一下就好了di=ai−ai−1(a0=0,1<=i<=n)d_i=a_i-a_{i-1}(a_0=0,1<=i<=n)di=ai−ai−1(a0=0,1<=i<=n)此时只要在lll的位置进行一次正修改,r+1r+1r+1的位置进行一次负修改就好了(刚好抵消)那么怎么查询呢?原创 2021-06-03 16:26:12 · 58 阅读 · 0 评论 -
P3374&&ybtoj【数据结构】2章1题&&4章1题【【模板】树状数组1】
【模板】树状数组1题目P3374解析板子题,可以使用树状数组或线段树解决树状数组:树状数组是一种较难理解的数据结构,就像这样:树状数组不是有手就行.jpg作者懒得打图了,所以放上了几个树状数组的生成式:c[1]=a[1]c[2]=a[1]+a[2]c[3]=a[3]c[4]=a[1]+a[2]+a[3]+a[4]c[5]=a[5]c[6]=a[5]+a[6]c[7]=a[7]c[8]=a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]可能没什原创 2021-06-03 16:05:09 · 69 阅读 · 0 评论