【洛谷P3374】【模板】樹狀陣列1
#include<cstdio>
using namespace std;
int n,m,f[500005];
inline void add(int x,int y){
for(;x<=n;x+=x&-x)f[x]+=y;
return ;
}
inline int ask(int x){
int re=0;
for(;x;x-=x&-x)re+=f[x];
return re;
}
int main(){
scanf("%d%d",&n,&m);
int x,y,opt;
for(int i=1;i<=n;i++){
scanf("%d",&x);
add(i,x);
}
while(m--){
scanf("%d%d%d",&opt,&x,&y);
if(opt==1)add(x,y);
else printf("%d\n",ask(y)-ask(x-1));
}
}
相關推薦
洛谷P4303 [AHOI2006]基因匹配(樹狀陣列)
傳送門 我已經連這種傻逼題都不會了orz 正常的dp是$O(n^2)$的,列舉第一個陣列的$j$,然後第二個陣列的$k$,如果相等,則$dp[i]=dp[j]+1$,否則$dp[i]=dp[j]$ 然後發現可以用樹狀陣列優化這個過程…… 不知道講清楚沒有因為我自己都還有點懵
【洛谷P3374】【模板】樹狀陣列1
#include<cstdio> using namespace std; int n,m,f[500005]; inline void add(int x,int y){ for(;x<=n;x+=x&-x)f[x]+=y;
【洛谷P2858·動態規劃】[USACO06FEB]奶牛零食Treats for the Cows
greate single nes 得到 form images include 規劃 ive 題面 題目描述 FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money
【洛谷mNOIP模擬賽Day1】T1 斐波那契
lld -s ace can using code 我們 namespace log 題目傳送門:https://www.luogu.org/problemnew/show/P3938 這題出得特別吼啊~~ 通過打表或者大膽猜想斐波那契數列的一些性質,我們不難發現對於一
【洛谷九月月賽T1】簽到題(bsgs)(快速乘)
code 是我 好的 取模 lin pri sca ast for 說好的簽到題呢qwq。。。。怎麽我簽到題都不會啊qwq 之後看了bsgs才發現貌似不是那麽那麽難fake!!什麽東西。。。 先貼上部分分做法(也就是枚舉1的個數,然後每一步都進行取模(這和最後取模結果一樣,
【洛谷P3038 [USACO11DEC]牧草種植】【樹鏈剖分】【裸】【邊權修改與查詢】
【連結】 https://www.luogu.org/problemnew/show/P3038 【題意】 給出一棵n個節點的樹,有m個操作,操作為將一條路徑上的邊權加一或詢問某條邊的權值。 【思路】 樹鏈剖分的裸題。 但是這個題是在邊上進行操作,我們考慮把邊上的操作轉移到點
題解 P3374 【【模板】樹狀陣列 1】
恩,這是AC的第一道樹狀陣列呢。 本蒟蒻以前遇到RMQ問題一般都用線段樹或ST表,可惜ST表不支援線上修改,而線段樹程式碼量又太大。 如今終於找到了折中方案:樹狀陣列!!!!程式碼量小,還支援修改! 樹狀陣列也就是二叉索引樹,又被稱為Fenwick樹,然而我個人認為它不能被嚴謹地成為
【洛谷九月月賽加賽】 kls與flag
主要涉及到map的用法,看到題目時不要思維定式,靈活轉化即可A掉。 code: #include<iostream> #include<map> using namesp
【洛谷11月月賽T3】【P4996】咕咕咕(組合數)
遲到的題解 昨天亂翻的時候感覺這道題挺有意思的 一眼看過去狀態壓縮亂搜 轉移方程大概是 設f[i]表示從0轉移到i的遺憾值之和 f[i]=sigma(f[j])+val[i]*dis[i] dis[i]=sigma(dis[j]) 其中j是i的子集,dis[i]表示從0轉移到i的方案數之和 妙啊有70分了 /
【題解】hdu2689 Sort it 樹狀陣列
題目連結 Description You want to processe a sequence of n distinct integers by swapping two adjacent sequence elements until the se
【POJ3176】Cow Patterns KMP+樹狀陣列(讓蒼天知道我不認輸)
題目大意: 根據一個子串的大小順序找到原陣列中滿足條件的子串所有開頭座標並輸出。 思路: 建立動態的樹狀陣列存好ran1,ran2並利用ran1,ran2判斷是否元素價值相同(在排序中處於相同位置)。如果不處於相同位置要將前面多餘的元素刪除,才能得到現在這個比較的子串的元素的真實
【BZOJ 3155】Preprefix sum(樹狀陣列)
顯然是不能直接開兩個樹狀陣列維護 字首和,字首和的字首和。因為一旦對a[i]進行修改,將會影響許多位字首和的字首和 我們考慮對式子變一下形 Qi =S1+S2+S3+...+Si =a1+a1+a2+a1+a2+a3+...+ai =a1*i+a2*(i-1)+a3*(i-2)+...+ai
【BZOJ 3718】 [PA2014]Parking(樹狀陣列)
容易想到如果兩個“交叉”的車車的寬度加起來比停車場還寬了那肯定是不合法的 也就是說 一個車子移動過程中只要前面存在一個位置,經過了他,而且和他的和大於w就是不合法的 然後我們從大到小列舉終點位置 這樣保證了樹狀數組裡維護的一定是經過了當前點的 #include<bits/stdc++.h> #de
洛谷P3368 樹狀陣列2 模板題 樹狀陣列+差分
戳我! 正解:樹狀陣列+差分 解題報告: 不得不說靈巧真滴是越來越弱了...連模板題都要放上來了QAQ 因為今天考試的T3正解要用到樹狀陣列這才警覺樹狀陣列掌握得太太太太差了...之前一直靠線段樹續著一條狗命然後又感覺挺複雜的就一直沒了解也懶得去理解QAQ 然後趕緊就滾去把兩個模板給做了 1就懶
洛谷P4303 [AHOI2006]基因匹配(樹狀數組)
lag def template lin printf 樹狀 ret flag ++ 傳送門 我已經連這種傻逼題都不會了orz 正常的dp是$O(n^2)$的,枚舉第一個數組的$j$,然後第二個數組的$k$,如果相等,則$dp[i]=dp[j]+1$,否則$dp[
c++樹狀陣列1模板
原題 這是一個模板,奇數點存本身值,偶數點根據其二進位制中1的個數存2的n次方個值,這樣改值用logn就可以了。 #include<iostream> #include<cstdi
模板總結——樹狀陣列
一維樹狀陣列 對於陣列A[1…n],在O(logn)的時間內完成以下任務: (1)給A[i]的值加上一個數 (2)求A[1]+A[2]+…+A[i]的和 說明 lowbit(i)表示i在二進位制表示法中最後一個’1‘所在位置的值,如lowbit(12)
洛谷 P3374 【模板】樹狀數組 1 題解
數字 pri getchar 說明 using 完全 ace getc ret 此文為博主原創題解,轉載時請通知博主,並把原文鏈接放在正文醒目位置。 題目鏈接:https://www.luogu.org/problem/show?pid=3374 題目描述 如題,
洛谷 P3374 【模板】樹狀數組 1 如題(單點修改+區間查詢)
ace hold reg gif sticky too aps urn cnblogs P3374 【模板】樹狀數組 1 時空限制1s / 128MB 題目描述 如題,已知一個數列,你需要進行下面兩種操作: 1
洛谷P3374 【模板】樹狀數組 1(CDQ分治)
size 結果 pri amp fine open sum turn 二維 題目描述 如題,已知一個數列,你需要進行下面兩種操作: 1.將某一個數加上x 2.求出某區間每一個數的和 輸入輸出格式 輸入格式: 第一行包含兩個整數N、M,分別表示該數列數字的個