Luogu P2182 [] [] JZOJ 3922シリーズエディタ

質問表面:

説明

Zは小さな趣味の数学の学生です。最近では、彼は、整数列の数にいくつかのプロパティを調べました。
彼の研究を容易にするために、我々は列エディタの数「オープン連続線プロセッサ」と呼ばれる小さなZを、達成したいと考えています。
まず、列エディタ無番号の数、1つのカーソルのみ。シリーズエディタは5つの操作のサポートを必要とします。
\(\ texttt I {} \) X X現在のカーソルの前に挿入ディジタル。
\(\ texttt {D} \)現在のカーソルを削除する前に数。
\(\ texttt {L} \)カーソルをデジタル前方に移動させます。
\(\ R&LT texttt {} \)カーソルバック一桁。
\(\ texttt {Q kを} \)の列の数、カーソルが設定される前に、{A1、A2、...、 }、 と前kビットのプレフィックスの最大出力とk≤n確実。

入力

最初の行番号N、操作の数を含んでいます。
N行を含む次のコマンドを含む各行

出力

コマンドの各々についてQ kは、整数演算への回答を出力します。

サンプル入力

8
I 2
I -1
I 1
Q 3
L
D
R
Q 2

サンプル出力

2
3

データ制約

【数据规模】 对于 50% 的数据,N ≤ 1000; 对于 80% 的数据,N ≤ 100000; 对于 100% 的数据,N ≤ 1000000,插入的数字绝对值大小不会超过 1000。

本体:

試験は、列の二重リンクリスト格納された整数を開いたときに、それぞれ、最初のリスト全体への2つのポインタやカーソル前開き。しかし、クエリが明らかである(\ \シータ(N)\ ) の時間複雑さ、意志\(\テキストTLE} {\)

だから我々は、スタックを使用することができます。2つのスタックを開くと、カーソルの左の列の数を表す(S1 \)\カーソルの右にある数と列数(S2 \)\その後、オープン配列\(Max_k \)は、 k個の接頭前レベルと最大値を表し、。

実行するときに(\ texttt {L} \ \ ) ときに、別のスタックに、スタックの最上位の値。実行(\ \ texttt {R} \ ) 、別のスタックながらスタックの先頭の値を更新\(最大\) 実行\(\ texttt {D} \ ) 、削除\(S1 \)スタック。実行\(\ texttt {I} \ ) 、スタック、更新\(最大\) ダイレクト出力を返します\(Max_k \)だけで罰金。

おすすめ

転載: www.cnblogs.com/GJY-JURUO/p/12060909.html