您当前的位置: 首页 > 

minato_yukina

暂无认证

  • 1浏览

    0关注

    138博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

洛谷P3373 【模板】线段树 2

minato_yukina 发布时间:2022-09-19 14:50:41 ,浏览量:1

在这里插入图片描述 只需要记住,对于乘法和加法操作,优先进行乘法操作,在执行 p u s h d o w n pushdown pushdown操作的时候,要把 a d d 的 t a g add的tag add的tag直接乘上父亲节点的 m u l mul mul的 t a g tag tag.这样就能保证加法标记被正确乘上

#include
using namespace std;
const int maxn = 1e6+5;
const int INF = 1e9+7;
typedef long long ll;
typedef pair pii;
#define all(a) (a).begin(), (a).end()
#define pb(a) push_back(a)
vector G[maxn];
struct Node{
	ll sum,add,mul;//两个懒标记tag,分别维护add,mul
}tree[maxn*4+5];
int mod;int a[maxn];
#define L (idxn>>m>>mod;
	for(int i=1;i>a[i];
	build(1,1,n);
	while(m--){
		int op,x,y;cin>>op>>x>>y;
		if(op==1){
			int k;cin>>k;
			update_mul(1,1,n,x,y,k);
		}
		if(op==2){
			int k;cin>>k;
			update_add(1,1,n,x,y,k);
		}
		if(op==3){
			cout            
关注
打赏
1663570241
查看更多评论
0.0368s