#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> #define type long long int
#define N (100000+2) using namespace std; type n,m;
type edge[N<<2];
type sum[N<<2]; void change(type &x,type &y,type &v,type l=1,type r=n,type k=1){
if(r<x||y<l)
return ;
if(x<=l&&r<=y){
sum[k]+=v;
return ;
}
edge[k]+=(min(r,y)-max(l,x)+1)*v;
register type mid=(l+r)>>1;
if(x<=mid)
change(x,y,v,l,mid,k<<1);
if(mid<y)
change(x,y,v,mid+1,r,(k<<1)+1);
return ;
}
type get(type &x,type &y,type l=1,type r=n,type k=1){
if(r<x||y<l)
return 0;
if(x<=l&&r<=y)
return edge[k]+(r-l+1)*sum[k];
register type mid=(l+r)>>1;
register type res=(min(r,y)-max(l,x)+1)*sum[k];
if(x<=mid)
res+=get(x,y,l,mid,k<<1);
if(mid<y)
res+=get(x,y,mid+1,r,(k<<1)+1);
return res;
} int main(){
register type i,tmp,x,y,v;
ios::sync_with_stdio(0);
memset(edge,0,sizeof edge);
memset(sum,0,sizeof sum);
cin>>n>>m;
for(i=1;i<=n;i++){
cin>>v;
change(i,i,v);
}
for(i=1;i<=m;i++){
cin>>tmp>>x>>y;
if(tmp==1){
cin>>v;
change(x,y,v);
}
else
if(tmp==2){
cout<<get(x,y)<<endl;
}
}
return 0;
}

[线段树]Luogu P3372 线段树 1【模板】的更多相关文章

  1. 【luogu P3372 线段树1】 模板

    线段树的模板题 题目链接:https://www.luogu.org/problemnew/show/P3372 update区间修改,query区间求和 #include <iostream& ...

  2. 洛谷P3372线段树模板1——线段树

    题目:https://www.luogu.org/problemnew/show/P3372 线段树模板. 代码如下: #include<iostream> #include<cst ...

  3. 【Luogu】P3380树套树模板(线段树套Splay)

    题目链接 幸甚至哉,歌以咏志. 拿下了曾经是那么遥不可及的线段树,学会了曾经高不可攀的平衡树,弄懂了装B的时候才挂在嘴边的树套树. 每道模板都是链上的一颗珠子.把它们挨个串起来,就成为我成长的历程. ...

  4. 【洛谷P3834】(模板)可持久化线段树 1(主席树)

    [模板]可持久化线段树 1(主席树) https://www.luogu.org/problemnew/show/P3834 主席树支持历史查询,空间复杂度为O(nlogn),需要动态开点 本题用一个 ...

  5. Luogu 2590 [ZJOI2008]树的统计 / HYSBZ 1036 [ZJOI2008]树的统计Count (树链剖分,LCA,线段树)

    Luogu 2590 [ZJOI2008]树的统计 / HYSBZ 1036 [ZJOI2008]树的统计Count (树链剖分,LCA,线段树) Description 一棵树上有n个节点,编号分别 ...

  6. LuoguP3834 【模板】可持久化线段树 1(主席树)|| 离散化

    题目:[模板]可持久化线段树 1(主席树) 不知道说啥. #include<cstdio> #include<cstring> #include<iostream> ...

  7. P3380 【模板】二逼平衡树(树套树)(线段树套平衡树)

    P3380 [模板]二逼平衡树(树套树) 前置芝士 P3369 [模板]普通平衡树 线段树套平衡树 这里写的是线段树+splay(不吸氧竟然卡过了) 对线段树的每个节点都维护一颗平衡树 每次把给定区间 ...

  8. 洛谷P3834 [模板]可持久化线段树1(主席树) [主席树]

    题目传送门 可持久化线段树1(主席树) 题目背景 这是个非常经典的主席树入门题——静态区间第K小 数据已经过加强,请使用主席树.同时请注意常数优化 题目描述 如题,给定N个正整数构成的序列,将对于指定 ...

  9. hdu1754(线段树单点替换&区间最值模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 题意:中文题诶- 思路:线段树单点替换&区间最大值查询模板 代码: #include & ...

随机推荐

  1. 2018-2-13-win10-UWP-MessageDialog-和-ContentDialog

    原文:2018-2-13-win10-UWP-MessageDialog-和-ContentDialog title author date CreateTime categories win10 U ...

  2. 2019-6-5-WPF-拼音输入法

    原文:2019-6-5-WPF-拼音输入法 title author date CreateTime categories WPF 拼音输入法 lindexi 2019-6-5 17:6:58 +08 ...

  3. vue-商品管理案例改进

    案例改进 vue-resource全局配置: Vue.http.options.root = 'http://vue.studyit.io/'; 全局启用 emulateJSON 选项 Vue.htt ...

  4. 盲法介绍及python盲打练习系统

    目录 一:盲打简介与优点 二:如何练习 三:键盘字母排列顺序的口诀 四:python打字练习系统 一:盲打简介与优点   简介:盲打是指打字的时候不用看键盘或看稿打字时的视线不用来回于文稿和键盘之间的 ...

  5. 网站的favicon图标

    网站的favicon图标 favicon.ico一般用于作为缩略的网站标志,它显示在浏览器的地址栏或者标签上. 制作favicon图标 把图片转换为png图片 把png图片转换为ico图标,这需要借助 ...

  6. 分布式服务防雪崩熔断器(Hystrix),实现服务降级

    Hystrix是什么? hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netflix团队将该框架命名 ...

  7. 为Dynamics CRM注释的图片附件做个预览功能

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复163或者20151017可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! Dynamics CRM中注释可 ...

  8. Android MediaRecorder录制播放音频

    1.请求录制音频权限 <user-permission android:name="android.permission.RECORD_AUDIO"/> RECORD_ ...

  9. TypeScript 学习笔记(三)

    类: 1.TypeScript 是面向对象的 JavaScript,类描述了创建的对象共同的属性和方法 2.类通过关键字 class 声明,使用 extends 关键字进行继承 3.在引用一个类成员时 ...

  10. MSSQL添加外键

    alter table 需要建立外键的表 with check/nocheck add constraint 外键名字 foreign key (需要建立外键的字段名) references 外键表( ...