【樹狀陣列 區間更新區間查詢】code
Link:http://codevs.cn/problem/1082/
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
//c[i] = a[i]-a[i-1]
//c2[i] = (i-1)*c[i]
//樹狀陣列維護c,c2
//ans[1-n]: n*sigma(c,n) - sigma(c2,n)
const int N = 200010;
#define lowbit(i) (i&(-i))
LL c[N],c2[N];
LL n;
void up(LL *r,LL x,LL val){
while(x<=n){
r[x] += val;
x += lowbit(x);
}
}
LL down(LL *r,LL x){
LL ans = 0;
while(x){
ans += r[x];
x -= lowbit(x);
}
return ans;
}
int main()
{
LL q;
scanf("%lld",&n);
for(int i = 1; i <= n; i++){
LL f;
scanf("%lld",&f);
up(c,i,f); up(c,i+1,-f);
up(c2,i,f*(i-1)); up(c2,i+1,-f*(i));
}
scanf("%lld",&q);
while(q--){
int type;
scanf("%d",&type);
LL a,b,f;
if(type==1){
scanf("%lld%lld%lld",&a,&b,&f);
up(c,a,f); up(c,b+1,-f);
up(c2,a,f*(a-1)); up(c2,b+1,-f*b);
}
else{
scanf("%lld%lld",&a,&b);
LL l = (a-1)*down(c,a-1) - down(c2,a-1);
LL r = b*down(c,b) - down(c2,b);
printf("%lld\n",r-l);
}
}
return 0;
}
相關文章
- 樹狀陣列的區間查詢與區間修改陣列
- HDU 1556【區間更新+單點查詢 樹狀陣列】陣列
- POJ 3468 【區間修改+區間查詢 樹狀陣列 | 線段樹 | 分塊】陣列
- 樹狀陣列模板題 & (樹狀陣列 1:單點修改,區間查詢)陣列
- HDU1166 敵兵佈陣【樹狀陣列 單點修改+區間查詢】陣列
- 關於區間操作查詢(字首和與差分)+樹狀陣列基礎陣列
- 芻議線段樹 2 (區間修改,區間查詢)
- 求區間不同數的個數【樹狀陣列求解】陣列
- POJ3468 A Simple Problem with Integers---樹狀陣列(區間問題)陣列
- 日期區間查詢
- HDU1698 Just a Hook【線段樹基礎:區間修改+區間查詢】Hook
- 【Leetcode每日一題】327. 區間和的個數(線段樹/樹狀陣列)LeetCode每日一題陣列
- Leetcode 327. 區間和的個數 (字首和 + 離散化 + 樹狀陣列)LeetCode陣列
- HDU1166 敵兵佈陣【線段樹基礎:點修改+區間查詢】
- 線段樹(1)建樹、單點修改、單點查詢、區間查詢和例題
- Laravel MongoDB 時間區間查詢的問題LaravelMongoDB
- C108 整體二分+樹狀陣列(區修+區查)P3332 [ZJOI2013] K大數查詢陣列
- 線段樹維護區間等差數列
- 區間更新+差分
- HDU1754 I Hate It 【線段樹基礎:點修改+區間查詢】
- bzoj3110: [Zjoi2013]K大數查詢(主席樹+樹狀陣列)陣列
- <二分查詢+雙指標+字首和>解決子陣列和排序後的區間和指標陣列排序
- 樹狀陣列陣列
- Java擷取指定區間內的陣列元素並存入新陣列Java陣列
- 線段樹維護單調棧——區間查詢版本 & 維護遞減序列
- HDU 3397 Sequence operation(線段樹區間染色加區間合併)
- 一種期望線性的靜態區間查詢
- Mysql 日期格式化 複雜日期區間查詢MySql
- 解析樹狀陣列陣列
- POJ 2528 Mayor's posters (線段樹 區間更新+離散化)
- 線段樹 區間乘法加法混合
- ORACLE資料庫遞迴查詢時間區間,可傳入指定日期Oracle資料庫遞迴
- 二維樹狀陣列陣列
- 樹狀陣列詳解陣列
- 樹狀陣列基礎陣列
- 陣列地址與指標之間的區別與聯絡陣列指標
- 短視訊平臺開發,查詢日期和時間的陣列陣列
- 第八大奇蹟【區間查詢第8大數】
- HDU-4348 - To the moon (主席樹+區間修改)