传送门 : 好久没写,线段树了,没想到被难到了
思路区间操作 对应 懒标记
两个区间操作 即 两个懒标记
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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?