[洛谷P2422]良好的感覺[單調佇列]
開始寫了個隊頭隊尾都pop的假做法...還搞到了70pts 後來拍了拍發現自己傻了
int n, a[MAXN], l[MAXN], r[MAXN], sta[MAXN], top;//l[i], r[i]是a[i]作為最小值的最左和最右端點 ll pre[MAXN]; int main() { ll ans = 0; in, n; lop1(i, n) in, a[i]; a[++n] = 0; lop1(i, n) pre[i] = pre[i - 1] + a[i]; lop1(i, n) l[i] = i; lop1(i, n) { while (top && a[sta[top]] >= a[i]) r[sta[top]] = i - 1, chmin(l[i], l[sta[top--]]); sta[++top] = i; } lop1(i, n) chmax(ans, 1ll * (pre[r[i]] - pre[l[i]-1]) * a[i]); out, ans, '\n'; return 0; }
相關推薦
[洛谷P2422]良好的感覺[單調佇列]
開始寫了個隊頭隊尾都pop的假做法...還搞到了70pts 後來拍了拍發現自己傻了 int n, a[MAXN], l[MAXN], r[MAXN], sta[MAXN], top;//l[i], r[i]是a[i]作為最小值的最左和最右端點 ll pre[MAXN]; int main() { ll
[洛谷P2422]良好的感覺[單調隊列]
pts -- max chm code ... 隊列 最小 開始 開始寫了個隊頭隊尾都pop的假做法...還搞到了70pts 後來拍了拍發現自己傻了 int n, a[MAXN], l[MAXN], r[MAXN], sta[MAXN], top;//l[i], r[i]
洛谷 P2422 良好的感覺
滿足 iostream 算法分析 name con https etc http 尋找 傳送門:洛谷 P2422 良好的感覺 算法分析: 本題可考慮貪心做法,每次枚舉某一區間最小值,那麽當最小值固定時,一定是滿足最小值的最長區間最優,即從當前位置向兩邊尋找,一直到不是最小為
[USACO18JAN]Lifeguards P 洛谷黑題,單調佇列優化DP
傳送門:戳我 這道題有兩個版本,S和P,S是K等於1的情況,顯然可以用線段樹水過。 P版本就難了很多,洛谷黑題(NOI/NOI+/CTSC),嘿嘿。 我自己也不是很理解,照著題解寫了一遍,然後悟到了一點東西。 dp方程很好想: dp[i][j]表示處理到第i個元素,已經刪掉了j個,但取了第i個。
P1091 合唱隊形題解(洛谷,動態規劃LIS,單調佇列)
先上題目 P1091 合唱隊形(點選開啟題目) 題目解讀: 1.由T1<...<Ti和Ti>Ti+1>…>TK可以看出這題涉及最長上升子序列和最長下降子序列 2.注意點:當n=1時是允許的,就是說沒有因為i=1,Ti=T1,所以最後全部人都要出列這種說法 &n
【題解】洛谷P1886 滑動視窗(單調佇列)
(之前從未聽說過這道題目 來到qbxt後大佬們都早就切掉此題了 倍感慚愧qwq) 題目大意就是給定一個序列A與要求的長度k,讓我們輸出A中所有長度為k的區間的最大值和最小值。 看到資料範圍後我們發現暴力會炸掉,所以要考慮比較簡潔的方法。這裡我們維護一個元素單調遞減的佇列求
洛谷P4147 玉蟾宮 單調棧/懸線法
正解:單調棧/懸線法 解題報告: ummm這題我當初做的時候一點思路也沒有隻會暴力出奇跡:D(啊聽說暴力好像能水過去呢,,, 然後當初是看的題解,然後學了下懸線法 然後就忘了:D 然後我現在看發現看不懂遼:D #論寫題解的好處:D 所以趕緊來寫個題解QAQ ummm懸線法這個玩意兒會單獨寫個學
洛谷1950 長方形 (單調棧)
懶得放題目連結了 qwq (果然我是菜的真實,單調棧都不會,gg) 首先我們看到這個題。 應該會想到就是直接列舉行,然後計算當前行的答案。 那現在,對於每一行來說,如果我們能夠維護出\(h[j]\)表示第\(j\)列的最近的一個不合法的位置。 那麼實際上就是求一堆矩形的並的一個圖形中。 有多少個矩形。
洛谷p3378 堆--基於優先佇列實現
加入了讀入掛,如果去掉greater<int>,則為最大堆 #include<cstdio> #include<queue> //不要忘記標頭檔案 using namespace std; priority_queue<int,vector<in
洛谷3594 [POI2015]WIL-Wilcze doły(單調佇列)
題目 給定一個長度為n的序列,你有一次機會選中一段連續的長度不超過d的區間,將裡面所有數字全部修改為0。請找到最長的一段連續區間,使得該區間內所有數字之和不超過p。 特性 選擇一個區間[i,i+d-1],那麼我們選擇的最長區間一定在這個區間附近,也就是連續的。 題解 單調佇列
2018.09.26洛谷P3957 跳房子(二分+單調佇列優化dp)
傳送門 表示去年考普及組的時候失了智,現在看來並不是很難啊。 直接二分答案然後單調佇列優化dp檢驗就行了。 注意入隊和出隊的條件。 程式碼: #include<bits/stdc++.h>
洛谷P1419 尋找段落(二分+單調佇列)
題解:題中需要我們去求一個最大的長度在[S,T][S,T][S,T]之間的連續子序列平均值。 即x=∑i=LRaiR−L+1(S≤R−L+1≤T)x = \frac{\sum_{i=L}^R a_i}{R-L+1} (S\leq R-L+1\leq T) x=
【題解】洛谷P4853[非酋yyf的sif之旅]B.yyf hates choukapai 單調佇列優化DP
題目連結 賽後題解 #include<cstdio> const int M=8e4+5,C=3e3+5,N=45,S=N*C+M; int a[S],b[S],n,m,c,d,sum,hd[N],tl[N],s,q[N][S][2],f[S]
#斜率優化,單調佇列,動態規劃#bzoj 2684 洛谷 4360 鋸木場選址
題目連結 分析 設 d p [ i
洛谷P3594 [POI2015]WIL-Wilcze doły【單調佇列】
時空限制 1000ms / 128MB 題目描述 給定一個長度為n的序列,你有一次機會選中一段連續的長度不超過d的區間,將裡面所有數字全部修改為0。請找到最長的一段連續區間,使得該區間內所有數字之和不超
【洛谷 P1419】 尋找段落(二分答案,單調佇列)
題目連結 開始還以為是尺取。發現行不通。 一看標籤二分答案,恍然大悟。 二分一個\(mid\)(實數),把數列裡每個數減去\(mid\),然後求字首和,在用單調佇列維護\(sum[i-t\text{~}i-s]\)的最小值,用\(sum[i]\)減去它,如果大於等於\(0\)就說明\(mid\)可行。 #
Telephone Wire [USACO07NOV] 洛谷P2885 [單調佇列優化dp]
文章目錄 Description Input Output Sample Input Sample Output 分析 ① ② 程式碼
洛谷P2827 蚯蚓(隱藏的單調的佇列)
題解 (不行,我先吐槽一下,因為少了兩個等號我調了一個晚上!!!可惡啊(〃>皿<),35分到100分的差距!) 首先,我們可以先模擬一下切蚯蚓的過程,會發現,後切成蚯蚓肯定要比先切成蚯蚓短。假設現在有蚯蚓a,ba,ba,b並且La>LbL_a&a
洛谷 P2216 [HAOI2007]理想的正方形 || 二維RMQ的單調隊列
pmi 最小值 typedef 關系 pan 算法 一行 ++ min 題目 這個題的算法核心就是求出以i,j為左上角,邊長為n的矩陣中最小值和最大值。最小和最大值的求法類似。 單調隊列做法: 以最小值為例: q1[i][j]表示第i行上,從j列開始的n列的最小值。
poj 2769 感覺♂良好 (單調棧)
回憶 ace 特殊 -i block void cnblogs 矩陣 esp poj 2769 感覺♂良好 (單調棧) 比爾正在研發一種關於人類情感的新數學理論。他最近致力於研究一個日子的好壞,如何影響人們對某個時期的回憶。 比爾為人的一天賦予了一個正整數值。 比爾稱這個