zoukankan      html  css  js  c++  java
  • Luogu P3372 【模板】线段树 1

    qwq

    #include<cstdio>
    using namespace std;
    const int maxn = 100005;
    int n,m,x,y,flag;
    int l[4*maxn],r[4*maxn];
    long long lazy[8*maxn],sum[4*maxn];
    
    void build(int L,int R,int now) {
        lazy[now] = 0;
        l[now] = L;
        r[now] = R;
        if(L == R) {
            scanf("%lld",&sum[now]);
            return;
        }
        int mid = (L+R)/2;
        build(L,mid,now*2);
        build(mid+1,R,now*2+1);
        sum[now] = sum[now*2] + sum[now*2+1];
    }
    
    long long query(int L,int R,int now) {
        sum[now] += lazy[now] * (r[now] - l[now] + 1);
        lazy[now*2] += lazy[now];
        lazy[now*2+1] += lazy[now];
        lazy[now] = 0;
        if(l[now] == L && r[now] == R)return sum[now];
        int mid = (l[now]+r[now])/2;
        if(R <= mid) return query(L,R,now*2);
        else if(L >= mid+1) return query(L,R,now*2+1);
        else return query(L,mid,now*2)+query(mid+1,R,now*2+1);
    }
    
    void modify(int L,int R,long long d,int now){
        if(l[now] == L && r[now] == R) {
            lazy[now] += d;
            return;
        }
        sum[now] += (long long)d*(R-L+1);
        int mid = (l[now]+r[now])/2;
        if(R <= mid) modify(L,R,d,now*2);
        else if(L >= mid+1) modify(L,R,d,now*2+1);
        else {
            modify(L,mid,d,now*2);
            modify(mid+1,R,d,now*2+1);
        }
    }
    
    int main() {
        scanf("%d%d",&n,&m);
        build(1,n,1);
        while(m) {
            m--;
            scanf("%d",&flag);
            if(flag == 1) {
                long long k;
                scanf("%d%d%lld",&x,&y,&k);
                modify(x,y,k,1);
            }
            if(flag == 2) {
                scanf("%d%d",&x,&y);
                printf("%lld
    ",query(x,y,1));
            }
        }
        return 0;
    }
  • 相关阅读:
    屏蔽右键
    无法解析类型 java.lang.Object。从必需的 .class 文件间接引用了它
    屏蔽右键
    Servlet的三个基本方法
    应用HttpClient来对付各种顽固的WEB服务器 摘抄
    Apache xmlrpc
    利用缓存机制快速读取XML文件数据
    JDBC连接MySQL
    HttpClient入门
    5款主流NoSQL数据库全方位横评
  • 原文地址:https://www.cnblogs.com/mogeko/p/9996455.html
Copyright © 2011-2022 走看看