//hdu4267
//題目大意:一段序列,修改某個區間 下標號成等差序列 的元素的值,查詢某個點的值
//對每個公差 以及 某段開始下標對每個公差的取餘(確定某個點被修改的方式,或者這個修改的起始位置?) 建立k*k個樹狀陣列
#include #include #include #include #include #include #include #include #include #include #include #include #include #define l 110
using namespace std;
int c[11][11][50500];
int a[50500];
int n, q;
void add(int k, int t, int x, int d)
}int sum(int k, int t, int x)
return s;
}int main()
if(op== 2)}}
return 0;
}
分狀態的樹狀陣列hdu 4267
我們用tree v k mod 來表示樹狀陣列的狀態。假如a b c k,那麼用樹狀陣列,區間更新,update b,a k,k,c update a 1,a k,k,c 就可以了 也就是說,區間 1,b 內每個ui k mod 那麼ui 的值就加c 然後 1,a 1 區間內每乙個ui c,於是就完...
HDU 4267 三維樹狀陣列
1.題目鏈結。題目的操作其實很像去區間修改,區間查詢的操作了,但是這個操作的區間不再是連續的了,而是離散的。但是這裡還是可以用樹狀陣列維護的,因為k很小,所以k和i k其實只有c 10,2 種情況,我們對每一種情況建一顆樹狀陣列,然後查詢的時候查對應的樹狀陣列即可。includeusing name...
HDU 4267 線段樹區間內部某個值更新
題意 輸入n 下面有n個數,q個操作,對於每次操作 有兩種情況。情況1.輸入1 a b k c,表示更新操作,將a b區間內的符合a i b and i a k 0.的數都 c。情況2 輸入2 a 表示查詢操作,輸出a 上的值。思路 對於這種不是對整個區間都進行更新的操作,似乎lazy演算法就沒什麼...