牛客練習賽49 D 筱瑪愛線段樹 差分

2021-09-25 01:12:07 字數 740 閱讀 7636

給定乙個長度為n(n<=1e5)的陣列a,剛開始每一項的值均為0。

支援以下兩種操作,操作共m(m<=1e5)次:

1 l r:將al∼ar的每一項的值加上1。

2 l r:執行操作編號在[l,r]內的所有操作各一次,保證r小於當前操作的編號。

m次操作結束後,你要告訴馬爺a陣列變成什麼樣子了。

由於答案可能會很大,你只需要輸出陣列a中的每個數在模1e9+7意義下的值。

官方題解

b倒序維護操作差分陣列,求字尾和,求出這個點實際的操作次數之後,再對前面的操作差分修改

a正序維護值的差分陣列,已知b中1的操作的實際操作次數之後,對a陣列差分修改,最後求字首和

賽中用線段樹過的,七八十行,然而差分20多行就能搞過

總是想不到差分,看了差分題解之後自己敲的**,

雖然感覺取模好像寫的不大對,但是ac了就這樣叭

#includeusing namespace std;

typedef long long ll;

const int mod=1e9+7;

const int n=1e5+10;

int n,m,a[n],b[n];

int op[n],l[n],r[n];

int main()

for(int i=m;i>=1;--i)

for(int i=1;i<=n;++i)

return 0;

}

牛客練習賽49 筱瑪愛線段樹 思維

太久沒做題了,看著有牛客就打了一場,果然自閉 題目大意也很明確,給定乙個長度為n,初始全為0的樹組。給定以下兩種操作 思維退化太快。開始老是想著建乙個可持久化的,或者怎瞎搞,發現複雜度都降不下來。後來絕處逢生,想到了將所有的操作倒著做,記錄每乙個操作被後面的操作總共引用了多少次,完美解決。複雜度也能...

牛客練習賽49 筱瑪愛閱讀 子集dp 桶判斷

筱瑪愛閱讀 題是好題,但我不會 定義d p i dp i dp i 為取出書狀態為i ii時的最大免費值 但是每本書的 是自己選定的,無法dpdp dp但是仔細觀察發現每本書並無區別 只會在最終方案存在一次 所以我們考慮dp i dp i dp i 會怎樣被更新 c nt i cnt i cnt i...

牛客練習賽37 C題筱瑪的迷陣探險

牛客練習賽37 c題筱瑪的迷陣探險 ps 需要前置技能 dfs和字典樹 二分dfs 分別從 1,1 和 n,n 開始走n步,會發現無論如何走最後都會到達對角線上 找出對角線上對應的每個可能結果,開倆個陣列,分別存在倆個陣列中,在對應的點上的集合上,乙個插入到字典樹中,另乙個查詢和它異或最大的數。in...