發表文章

目前顯示的是有「序列」標籤的文章

[TIOJ] 1227. 一個數列

題目連結: http://tioj.infor.org/problems/1227 序列小技巧,若允許離線或像本題保證修改完才會有查詢,可以用類似懶標記的方式,把序列的修改存下來(修改$[L,R)$則在L加R減,反之亦然),然後查詢時就把序列累推回去,並加回原序列,不過這題有點煩的地方是奇偶項要分成兩條處理 #include "lib1227.h" long long odd[1000003]={0},even[1000003]={0}; long long* D; int N; bool isSUM=false; void init(int n, long long d[]){ N=n; D=d; } void change(int a, int b, long long k){ if(a%2==0){ //a是偶數 even[a/2]-= k; odd[a/2] += k; if((b-a)%2==0){ //共有奇數個 //因a是偶數,故b為偶 even[b/2+1]+=k; odd[b/2] -=k; }else{ //共有偶數個 //因a是偶數,故b為奇 even[b/2+1]+=k; odd[b/2+1] -=k; ...