题面:

Description

小Z是一个爱好数学的小学生。最近,他在研究一些关于整数数列的性质。

为了方便他的研究,小Z希望实现一个叫做“Open Continuous Lines Processor”的数列编辑器。

一开始,数列编辑器里没有数字,只有一个光标。这个数列编辑器需要支持五种操作。

• \(\texttt{I}\) x 在当前光标前插入数字 x。

• \(\texttt{D}\) 删除当前光标前的数字。

• \(\texttt{L}\) 光标向前移动一个数字。

• \(\texttt{R}\) 光标向后移动一个数字。

• \(\texttt{Q k}\) 设光标之前的数列是{a1,a2,……,an},输出第k位及之前最大的前缀和,保证k≤n。

Input

第一行包含一个数字 N ,表示操作的个数。

接下来包含 N 行,每行包含一条命令

Output

对于每个Q k 命令,输出一个整数表示这个操作的答案。

Sample Input

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

Sample Output

2
3

Data Constraint

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

正文:

考试的时候是开了个双向链表存整个数列,再开两个指针分别指向整个链表第一个和光标前一个。但查询的时候很显然是\(\theta(n)\)的时间复杂度,会\(\text{TLE}\)。

所以我们可以用到栈。开两个栈分别表示光标左边的数列\(s1\)和光标右边的数列\(s2\)。再开个数组\(Max_k\)表示第k位及之前最大的前缀和。

当执行\(\texttt{L}\)时,把栈顶的值移到另一个栈里。执行\(\texttt{R}\)时,把栈顶的值移到另一个栈里的同时,更新\(Max\),执行\(\texttt{D}\)时,直接删除\(s1\)栈顶。执行\(\texttt{I}\)时,入栈、更新\(Max\)。输出时直接返回\(Max_k\)就好了。

【Luogu P2201】【JZOJ 3922】数列编辑器的更多相关文章

  1. 「Luogu P2201」数列编辑器 解题报告

    数列编辑器,在线IDE 本期的主题是洛谷的在线IDE 小学生?!小学生虐我

  2. [luogu P1438] 无聊的数列

    [luogu P1438] 无聊的数列 题目背景 无聊的YYB总喜欢搞出一些正常人无法搞出的东西.有一天,无聊的YYB想出了一道无聊的题:无聊的数列...(K峰:这题不是傻X题吗) 题目描述 维护一个 ...

  3. 洛谷【P2201】数列编辑器

    我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P220 ...

  4. P2201 数列编辑器

    传送门呀呀呀呀呀呀呀呀呀呀呀呀呀 \(乍一看题目好像很难\)(实际也确实很难) \(但是我们仔细看就发现,整个数列分成了光标前和光标后两组数列\) \(我们有什么理由不分开储存呢??\) \(然后光标 ...

  5. luogu P4108 [HEOI2015]公约数数列——solution

    -by luogu 不会啊.... 然后%了一发题解, 关键是 考虑序列{$a_n$}的前缀gcd序列, 它是单调不升的,且最多只会改变$log_2N$次,因为每变一次至少除2 于是,当我们询问x时: ...

  6. BZOJ 1500 Luogu P2042 [NOI2005] 维护数列 (Splay)

    手动博客搬家: 本文发表于20180825 00:34:49, 原地址https://blog.csdn.net/suncongbo/article/details/82027387 题目链接: (l ...

  7. [Luogu] 矩阵加速(数列)

    题面:https://www.luogu.org/problemnew/show/P1939 题解:https://www.zybuluo.com/wsndy-xx/note/1153810

  8. Luogu P2042 [NOI2005]维护数列

    题目描述 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线' _ '表示实际输入文件中的空格) 输入输出格式 输入格式: 输入文件的第 1 行包含两个数 N 和 M, ...

  9. Luogu P2042 [NOI2005]维护数列(平衡树)

    P2042 [NOI2005]维护数列 题意 题目描述 请写一个程序,要求维护一个数列,支持以下\(6\)种操作:(请注意,格式栏中的下划线'_'表示实际输入文件中的空格) 输入输出格式 输入格式: ...

随机推荐

  1. 【shell】文本按行逆序

    1.最简单的方法是使用tac [root ~]$ seq |tac 2.使用tr和awk. tr把换行符替换成自定义的分隔符,awk分解替换后的字符串,并逆序输出 [root ~]$ seq | tr ...

  2. Comet OJ - Contest #14题解

    Contest14的本质:区间覆盖+Tarjan( A 把距离公式两边平方即可 注意要long long code #include <algorithm> #include <io ...

  3. 2019春Python程序设计作业1(0319-0325)

    判断题 1-1 在Python 3.x中可以使用中文作为变量名. (2分) T         F Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型.(2分) T     ...

  4. Maven Waring : GroupId is duplicate of parent groupId 和 Version is duplicate of parent version

    问题描述: 新项目在创建的时候,因为用到了分模块的,所以导致子模块的pom文件,报了 如下警告: 解决办法: 直接 Window --> Preferences -->  Maven -- ...

  5. python调用Opencv库和dlib库

    python是一门胶水语言,可以调用C++编译好的dll库 python调用opencv-imggui.dll文件 https://www.cnblogs.com/zhangxian/articles ...

  6. 洛谷 P5022 旅行——题解

    发现大部分题解都是O(n^2)的复杂度,这里分享一个O(n)复杂度的方法. 题目传送 首先前60%的情况,图是一棵无根树,只要从1开始DFS,每次贪心走点的编号最小的点就行了.(为什么?因为当走到一个 ...

  7. xshell的快捷键

    https://blog.csdn.net/hellozpc/article/details/46753575

  8. [CSP-S模拟测试]:数列(数学)

    题目传送门(内部题95) 输入格式 第一行三个整数$n,a,b$,第二行$n$个整数$x_1\sim x_n$表示数列. 输出格式 一行一个整数表示答案.无解输出$-1$. 样例 样例输入:2 2 3 ...

  9. Integer类源码浅析

    1.首先Integer提供了两类工具类,包括把一个int类型转成二进等, 其实执行转换算法只有一个方法: public static String toString(int i, int radix) ...

  10. multiple users to one ec2 instance setup

    http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html usually when use pem file as ...