sample input8
i 2
i -1
i 1
q 3
l d
r q 2
sample output2
3題意:
正在設計一種新型的編輯器,這種編輯器可以高效地處理整數序列。
編輯器啟動時,序列為空,游標指向序列的頭部。編輯器支援下列 5 種操作:
1. i x 把整數 x 插入到游標位置;
2. d 刪除游標之前的整數(保證游標不在序列的頭部);
3. l 如果游標不在序列的頭部,向左移動乙個位置,否則不移動;
4. r 如果游標不在序列的尾部,向右移動乙個位置,否則不移動;
5. q k 假設游標之前的序列是 ,求 s1, s2, … , sk 的最大值(其中 si = a1 +a2 +· · ·+ai )。保證 k ≤ n。
思路:我們可以開兩個棧,乙個指標前的序列,乙個指標後的序列.
若是l,r操作,把棧頂的彈出來,加入到另乙個棧裡維護。
維護乙個字首和,每次操作都要更新。
**:
#include#include#include#include#includeusing namespace std;
#define maxn 2000100+10
#define inf 0x3f3f3f3f
typedef long long ll;
ll sum[maxn];
ll sum;
stackl,r;
int n;
char ch[10];
int add(int x)
int del(int &x)
int main()
else if(ch[0]=='d')
else if(ch[0]=='l')
else if(ch[0]=='r')
else if(ch[0]=='q')
}} return 0;
}
字首和 DP 登機(jzoj 5535)
有一架飛機,有n個人要登機,每個人的不滿值為登機時當前機艙在他所在行前方的人數總和,現在可以把飛機分為k個機艙,使不滿值總和最小 小h是機場登機的執行經理。他的工作是優化登機流程。飛機上的座位有s行,編號從1到s,每行有六個座位,標記為a到f。今天 有n個乘客陸續登機,第i名乘客的座位在第ri行,則...
字首和思想 JZOJ 100035 區間
傳送門 define runinstance x delete new x struct cheat1 在主函式中 if n 1000 runinstance cheat1 這樣就能做到不呼叫就不占用空間,呼叫不會爆棧,多次呼叫不會記憶體洩露。如果確實要多次呼叫,最好還是把迴圈寫裡面 對於25 的資...
acwing 編輯器 棧 字首和 dp
你將要實現乙個功能強大的整數序列編輯器。在開始時,序列是空的。1 i x 在游標處插入數值x。2 d 將游標前面的第乙個元素刪除,如果前面沒有元素,則忽略此操作。3 l 將游標向左移動,跳過乙個元素,如果左邊沒有元素,則忽略此操作。4 r 將游標向右移動,跳過乙個元素,如果右邊沒有元素,則忽略次操作...