Advertisement

AcWing 243. 线段树基础(区间修改及求区间和)

阅读量:

AcWing 243. 一个简单的整数问题2
线段树的区间更新与区间求和操作实现方案

复制代码
    #include<bits/stdc++.h>
    
    using namespace std;
    
    const int N = 1e5 + 10;
    
    typedef long long ll;
    
    int n, m;
    int w[N];
    struct Node{
    	int l, r;
    	ll sum, add;  //总和和懒标记 
    }tr[N * 4];
    
    void pushup(int u){  //子更新父 
    	tr[u].sum = tr[u << 1].sum + tr[u << 1 | 1].sum;
    }
    
    void pushdown(int u){  //父更新子 
    	auto &root = tr[u], &L = tr[u << 1], &R = tr[u << 1 | 1];
    	if(root.add){
    		L.add += root.add;
    		R.add += root.add;

全部评论 (0)

还没有任何评论哟~