第一行包含乙個數字n,表示操作的個數。
接下來包含n 行,每行包含一條命令。
對於每個q k 命令,輸出乙個整數表示這個操作的答案。
sample input
8
i 2i -1
i 1q 3ld
rq 2
sample output2
3
因為k
kk保證在游標前且是字首和是1
11到k
kk,那麼…
設定乙個對頂棧
乙個棧裝1到游標處的數列(x)
(x)(x
)乙個裝游標處(後)到最後乙個數(本陣列可能為空)(y)
(y)(y
)那麼i
ii:將x
xx插入第乙個棧
d
dd:彈出x
xx棧的棧頂
l
ll:將x
xx棧的棧頂裝到y
yy棧,然後彈出x
xx棧的棧頂
r
rr:將y
yy棧的棧頂裝到x
xx棧,然後彈出y
yy棧的棧頂
-----------------------------上述操作到要進行求字首和求和與求字首和最大-----------------------------
d
dd:輸出f[k
]f[k]
f[k]
#include
#include
#include
#include
using
namespace std;
int sum[
1000005
], f[
1000005];
int a[
1000005
], b[
1000005];
int n, k, af, bf;
char c;
intread()
//數字快讀
char
read_c()
//字母快讀
intmain()
else
if(c ==
'd')
else
if(c ==
'l')
else
if(c ==
'r')
else
if(c ==
'q')
}return0;
}
acwing 編輯器 棧 字首和 dp
你將要實現乙個功能強大的整數序列編輯器。在開始時,序列是空的。1 i x 在游標處插入數值x。2 d 將游標前面的第乙個元素刪除,如果前面沒有元素,則忽略此操作。3 l 將游標向左移動,跳過乙個元素,如果左邊沒有元素,則忽略此操作。4 r 將游標向右移動,跳過乙個元素,如果右邊沒有元素,則忽略次操作...
128 編輯器 雙棧
你將要實現乙個功能強大的整數序列編輯器。在開始時,序列是空的。1 i x 在游標處插入數值x。2 d 將游標前面的第乙個元素刪除,如果前面沒有元素,則忽略此操作。3 l 將游標向左移動,跳過乙個元素,如果左邊沒有元素,則忽略此操作。4 r 將游標向右移動,跳過乙個元素,如果右邊沒有元素,則忽略次操作...
利用棧做行編輯器
問題 include include include includeusing namespace std define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 ty...