通过差分可以玩区间:

bi=ai-a(i-1)

查询时考虑位置对答案的贡献 推导一下

 #include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int N=1e5; ll n,a[N],b[N],c1[N],c2[N]; //basic
inline int lowbit(int x){return x&-x;}
ll sum(ll *c,int x){
ll ret=;
for(;x>;x-=lowbit(x)) ret+=c[x];
return ret;
}
ll query(ll *c,int l,int r){
return sum(c,r)-sum(c,l-);
}
void addPoint(ll *c,int x,ll v){
for(;x<=n;x+=lowbit(x)) c[x]+=v;
}
void build(ll *c,ll *a,ll n){
for(int i=;i<=n;i++){
c[i]+=a[i];
if(i+lowbit(i)<=n)
c[i+lowbit(i)]+=c[i]; //!!c[i] or while
}
} //interval-interval
void initB(ll *b,ll *a){
b[]=a[];
for(int i=;i<=n;i++) b[i]=a[i]-a[i-];
}
void addRange(int l,int r,ll v){
addPoint(c1,l,v); addPoint(c2,l,v*l);
addPoint(c1,r+,-v); addPoint(c2,r+,-v*(r+));
}
ll sumRange(int l,int r){
return query(c1,,l)*(r-l+)+ query(c1,l+,r)*(r+) -query(c2,l+,r);
} int t,l,r;
ll v;
int main(){ //freopen("in.txt","r",stdin);
//freopen("1.txt","w",stdout); cin>>n>>t;
for(int i=;i<=n;i++) cin>>a[i];
// for(int i=1;i<=n;i++){
// addRange(i,i,a[i]);
// } initB(b,a);
build(c1,b,n);
for(int i=;i<=n;i++) b[i]*=i;
build(c2,b,n); while(t--){
int flag;
cin>>flag;
if(flag==){
cin>>l>>r;
cout<<sumRange(l,r)<<"\n";
}else{
cin>>l>>r>>v;
addRange(l,r,v);
cout<<sumRange(l,r)<<"\n";
}
}
}

[tem]树状数组的更多相关文章

  1. POJ 2464 Brownie Points II(树状数组)

    一开始还以为对于每根竖线,只要与过了任意一点的横线相交都可以呢,这样枚举两条线就要O(n^2),结果发现自己想多了... 其实是每个点画根竖线和横线就好,对于相同竖线统计(一直不包含线上点)右上左下总 ...

  2. POJ3468--A Simple Problem with Integers--线段树/树状数组 改段求段

    题目描述 You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type ...

  3. bzoj3262陌上花开 三维数点 cdq+树状数组

    大早上的做了一道三维数点一道五位数点,神清气爽! 先给一维排序,变成一个奇怪的动态的二维数点(相当于有一个扫描面扫过去,导致一系列的加点和询问) 然后cdq分治,再变回静态,考虑前半段对后半段的影响 ...

  4. codeforces 1042D - Petya and Array【树状数组+离散化】

    题目:戳这里 题意:有n个数,问有多少个区间满足[L,R]内的和小于t. 解题思路: [L,R]内的和小于t等价于sum[R]-sum[L-1]<t,将sum[L-1]左移,可以看出R与L的关系 ...

  5. BZOJ 1103: [POI2007]大都市meg [DFS序 树状数组]

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2221  Solved: 1179[Submit][Sta ...

  6. bzoj1878--离线+树状数组

    这题在线做很麻烦,所以我们选择离线. 首先预处理出数组next[i]表示i这个位置的颜色下一次出现的位置. 然后对与每种颜色第一次出现的位置x,将a[x]++. 将每个询问按左端点排序,再从左往右扫, ...

  7. codeforces 597C C. Subsequences(dp+树状数组)

    题目链接: C. Subsequences time limit per test 1 second memory limit per test 256 megabytes input standar ...

  8. BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]

    2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2545  Solved: 1419[Submit][Sta ...

  9. BZOJ 3529: [Sdoi2014]数表 [莫比乌斯反演 树状数组]

    3529: [Sdoi2014]数表 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1399  Solved: 694[Submit][Status] ...

随机推荐

  1. C#写爬虫,版本V2.0

    这个版本主要是以百度图片为对象,对其进行爬虫操作,实现了最基本的下载功能,但是缺陷非常多,日后还会对其进行改进. 打开百度图片,同时打开开发者工具,我们会发现,百度图片是通过如下的一段ajax来加载图 ...

  2. Intellij IDEA 导入 eclipese项目之后,中文注释乱码解决方案

    首先,看导入后整个IJ界面: 可以看到注释是乱码,要解决问题就跟我开始做吧,看右下角有个"UTF-8",点一下选择"GBk",选择"Reload&qu ...

  3. UVALive 6916---Punching Robot(卢卡斯+容斥)

    题目链接 https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  4. 探讨webapp的SEO难题(上)

    前言 网络蜘蛛无法解析javascript,至少百度是不能的,神马搜索差的更远,而我们的webapp的渲染展示完全由javascript驱动 所以蜘蛛访问webapp页面会得到一个白页面,比如,我们期 ...

  5. Android开发7:简单的数据存储(使用SharedPreferences)和文件操作

    前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...

  6. centos 7 64位虚机上android4环境运行

    场景 现在的开发大多是在linux的虚拟机上进行,现在有些工作和android有关,因此初步尝试了一下是否可以和目前的场景进行统一. 系统是在vmware workstaion上的centos 7的6 ...

  7. jQuery修改class属性和CSS样式

    jQuery修改class属性和CSS样式 class属性修改 类属性即class属性,规定类名. 用类选择器规定样式的时候,需要为元素指定类名,即class属性的值. 注意每个HTML元素只有一个c ...

  8. C#中 ??、 ?、 ?: 、?.、?[ ]

    1. 可空类型修饰符(?)引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空. 例如:string str=null; 是正确的,int i=null; 编译器就会报错. 为了使值类型 ...

  9. String.SubString

    1理论 String.SubString(int index,int length) index:开始位置,从0开始 length:你要取的子字符串的长度 2实验   string my = &quo ...

  10. SQL Server 中WITH (NOLOCK)浅析

    概念介绍 开发人员喜欢在SQL脚本中使用WITH(NOLOCK), WITH(NOLOCK)其实是表提示(table_hint)中的一种.它等同于 READUNCOMMITTED . 具体的功能作用如 ...