jzoj 3789( 棧 字首和)

2021-09-11 04:33:35 字數 1054 閱讀 5074

sample input

i 2 

i -1 

i 1 

q 3 

l d 

r q 2

sample output

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 將游標向右移動,跳過乙個元素,如果右邊沒有元素,則忽略次操作...