您当前的位置: 首页 > 

*DDL_GzmBlog

暂无认证

  • 0浏览

    0关注

    605博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

[Awing]维护序列 线段树,区间操作

*DDL_GzmBlog 发布时间:2021-10-19 11:14:56 ,浏览量:0

前言

传送门 : 好久没写,线段树了,没想到被难到了

思路

区间操作 对应 懒标记

两个区间操作 即 两个懒标记

Q: 两个懒标记应该先计算哪个 ?

如果先计算加法再计算乘法,那么加法一定需要被乘数整除才行

因此先使用加法

对于每个数我们都看成 a ∗ b + c a*b+c a∗b+c 因此对于 乘法懒标记 我们可以 b ∗ m u l b*mul b∗mul

对于加法懒标记 c ∗ m u l + a d d c*mul + add c∗mul+add

然后就是不好写 QAQ

CODE
#include 
using namespace std;
#define ll  long long
#define ned '\n'
const int N = 1e5+10;

int n,p,m;
int w[N];
struct node
{
    int l,r;
    int sum,add,mul; ///两个懒标记
}tr[N*4];///四倍空间

void pushup(int u)
{
    tr[u].sum  = (tr[u>d;
            modify(1,l,r,0,d);
        }
        else if(op == 2)
        {
            cin>>d;
            modify(1,l,r,d,1);
        }
        else
        cout            
关注
打赏
1657615554
查看更多评论
0.0612s