原題:
題解:本題大意:區間加法,乘法,單點查詢,設sum為塊的加法標記,mul為乘法標記。通過分析有
#include#define reg register
#define ll long long
const int n=110000,mm=550,m=10007;
using namespace std;
int mul[mm],sum[mm],a[n],pos[n],n,m;
inline int rd()
inline void pushdown(int x)
inline void add(int l,int r,int c)
for(reg int i=pos[l]+1;i<=pos[r]-1;i++) sum[i]=(sum[i]+c)%m;
}inline void change(int l,int r,int c)
for(reg int i=pos[l]+1;i<=pos[r]-1;i++) mul[i]=1ll*mul[i]*c%m,sum[i]=1ll*sum[i]*c%m;
}int main()
return 0;
}
數列分塊入門9 區間眾數
原題 題解 基本題意求 l,r 的最小眾數,對於集合 a,b 顯然 mode a and b 屬於 mode a and b。這樣就可以分塊,預處理f i j 表示i j的眾數。每次查詢時暴力查詢頭尾兩塊的數和中間塊的眾數就可以,關於查詢x在 l,r 出現了幾次,用動態陣列存放x的下標,二分查詢就好...
loj 數列分塊入門 6 9 區間眾數
給出乙個長為 n 的數列,以及 n 個操作,操作涉及單點插入,單點詢問,資料隨機生成。參考 每個塊內用乙個 vector 維護,每次插入時先找到位置所在的塊,再暴力插入。如果資料不隨機,即如果先在乙個塊有大量單點插入,這個塊的大小會大大超過 sqrt n 那塊內的暴力就沒有複雜度保證了。為此引入乙個...
LOJ 6285 數列分塊入門 9 區間眾數
如果只查詢眾數的個數,完全可以莫隊,加數時容易維護眾數的數量,刪除數時,眾數的數量要麼減1,要麼不變,只需再開乙個標記陣列維護眾數的數量即可 根據陳立傑 區間眾數解題報告 實現了下面兩種解法 解法一 塊數分成sqrt n 超時了,150可以過 分塊真毒瘤 pragma gcc optimize 2 ...