LOJ 6282 數列分塊6

2022-05-20 14:15:32 字數 525 閱讀 5005

題目大意:給定乙個由 n 個數組成的序列,維護兩種操作:單點詢問,單點插入。n < 100000

題解:在塊內維護乙個鍊錶,支援動態插入數字,同時對於非隨即資料來說,若塊的大小過大,需要重構。

注:對於 c++ vector 的 insert 函式的含義是在給定迭代器的後面插入數值。

**如下

#include using namespace std;

const int maxn=2e5+10;

inline int read()while(!isdigit(ch));

dowhile(isdigit(ch));

return f*x;

}int n,q,st[maxn],top,tot;

struct nodeb[1000];

void make_block()

void rebuild()

void solve() }}

int main()

loj 6282 數列分塊入門 6

題目 傳送門 簡要題意 給出乙個長為 n的數列,以及 n個操作,操作涉及單點插入,單點詢問,資料隨機生成。題解 不得不說hzwer有點懶 好好打分塊 分塊的題實在是越來越噁心,越來越暴力了.第一反應就是硬插.然後重新分塊.感覺要爆.一發hzwer 結果.每次其實最多就影響兩個塊.爆?不存在的.然後就...

LOJ6282 數列分塊入門 6 分塊

給定乙個長為 n 的序列,有 n 次操作,每次可能在指定位置插入乙個數,或者詢問指定位置的數是多少,資料隨機 考慮到資料隨機,我們維護 sqrt n 個vector,每次操作的時候暴力掃一遍找到對應下標的位置即可 事實證明這樣 t 了,我們該用list,於是就過了 include using nam...

6282 數列分塊入門 6

題目鏈結 插入值過後整個分塊已經不是平均分配了,可能導致某一塊過大,需要重新build,將塊元素平均。第一行輸入乙個數字 n。第二行輸入 n 個數字,第 i 個數字為 ai 以空格隔開。接下來輸入 n 行詢問,每行輸入四個數字 opt l r c,以空格隔開。若 opt 0,表示在第 l 個數字前插...