給定乙個長度為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...