鑑於其被初始化爲0的數組ARR即ARR [I] = 0,其中0 <我<Ñ更新陣列
兩種操作是在它
更新KRX
執行更新做以下幾點:
for(i=k;i<=r;i++) { arr[i]=x; x+=x; }
查詢kr
查詢計算以下總和:
for(i=k;i<=r;i++) { sum+=arr[i]; } print(sum);
我的解決辦法:
我想動粗,但它是緩慢的。我想到了分段樹,但是分段樹更新是以恆定的數量執行的,所以它失敗了。什麼可能是一個很好的算法來解決這個問題?
約束
尺寸數組的是< = 10^5
數操作(更新,查詢)< = 10^5
可以添加問題的約束?就像x,k和r可以採用的值的範圍一樣。 –
使用Fenwick樹保留前綴總和。 – kfx
發佈此類問題需要顯示總數組大小和查詢數等約束條件。解決方案通常與約束緊密相連。 –