#include//類是差分的思想區間更新
#include//思路:用每個點總的攻擊次數-無效次數
#include
using
namespace
std;
int n,q,t;
int s[20005];
int l[20005],r[20005],last[20005],useless[20005];
int lowbit(int x)
void insert(int i,int num)
}int sum(int x)
return ans;
}int main()
else
if(s1[0]=='q')
//這個坑點試因為這裡不加t而加t-1 因為for迴圈裡邊有個j++
}printf("%d\n",sum(a)-useless[a]); //所有次數減去無用次數 }}
}return
0; }
hdu 4031 Attack 樹狀陣列
題意 美國有種防護盾,能抵擋 的秘密 但每次抵擋後,需要t個單位時間去冷卻,期間不能起抵擋作用。思路 我一開始用線段樹做,但做到一半就坑爹了 當修改了線段樹的子節點資訊時,父節點的左右節點就會產生不一致性,那麼也就沒法直接修改父節點。其實這題線段樹和樹狀陣列都能做。我們現在把問題分為兩個部分 1.統...
樹狀陣列 詳解
對於普通陣列,其修改的時間複雜度位o 1 而求陣列中某一段的數值和的時間複雜度為o n 因此對於n的值過大的情況,普通陣列的時間複雜度我們是接受不了的。在此,我們引入了樹狀陣列的資料結構,它能在o logn 內對陣列的值進行修改和查詢某一段數值的和。假設a陣列為儲存原來的值得陣列,c為樹狀陣列。我們...
樹狀陣列詳解
樹狀陣列求區間和的一些常見模型 樹狀陣列在區間求和問題上有大用,其三種複雜度都比線段樹要低很多 有關區間求和的問題主要有以下三個模型 以下設a 1.n 為乙個長為n的序列,初始值為全0 1 改點求段 型,即對於序列a有以下操作 修改操作 將a x 的值加上c 求和操作 求此時a l.r 的和。這是最...