国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

243. 一個簡單的整數(shù)問題2(樹狀數(shù)組)

這篇具有很好參考價值的文章主要介紹了243. 一個簡單的整數(shù)問題2(樹狀數(shù)組)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

243. 一個簡單的整數(shù)問題2(樹狀數(shù)組),AcWing,算法,數(shù)據(jù)結(jié)構(gòu),c++,c語言,開發(fā)語言

輸入樣例:
10 5
1 2 3 4 5 6 7 8 9 10
Q 4 4
Q 1 10
Q 2 4
C 3 6 3
Q 2 4
輸出樣例:
4
55
9
15

?解析:

? ? ? ? 一般樹狀數(shù)組都是單點修改、區(qū)間查詢或者單點查詢、區(qū)間修改。這道題都是區(qū)間操作。

????????243. 一個簡單的整數(shù)問題2(樹狀數(shù)組),AcWing,算法,數(shù)據(jù)結(jié)構(gòu),c++,c語言,開發(fā)語言

?

? ? ? ? 1. 區(qū)間修改用數(shù)組數(shù)組維護(hù)差分?jǐn)?shù)組

? ? ? ? 2. 區(qū)間查詢,需要log計算兩個端點的前綴和。上圖右側(cè),可以得出,計算前綴和需要維護(hù)差分序列和? i*b[ i ]?的差分序列。文章來源地址http://www.zghlxwxcb.cn/news/detail-625802.html

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
ll n,m,a[N],b[N],tr1[N],tr2[N];
int lowbit(int x){
	return x&-x;
}
void add1(int x,ll k){
	for(int i=x;i<=n;i+=lowbit(i)) tr1[i]+=k;
}
void add2(int x,ll k){
	for(int i=x;i<=n;i+=lowbit(i)) tr2[i]+=k;
}
ll sum(int x){
	ll ans=0;
	for(int i=x;i;i-=lowbit(i)) ans+=tr1[i];
	ans*=x+1;
	for(int i=x;i;i-=lowbit(i)) ans-=tr2[i];
	return ans;
}
int main(){
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		b[i]=a[i]-a[i-1];
		add1(i,b[i]);
		add2(i,i*b[i]);
	}
	while(m--){
		char op;
		cin>>op;
		if(op=='C'){
			int l,r,d;
			scanf("%lld%lld%lld",&l,&r,&d);
			add1(l,d);
			add1(r+1,-d);
			add2(l,d*l);
			add2(r+1,-d*(r+1));
		}
		else{
			int x,y;
			scanf("%lld%lld",&x,&y);
			printf("%lld\n",sum(y)-sum(x-1));
		}
	}
	return 0;
}

到了這里,關(guān)于243. 一個簡單的整數(shù)問題2(樹狀數(shù)組)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包