【Luogu P2201】【JZOJ 3922】数列编辑器
题面:
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】数列编辑器的更多相关文章
- 「Luogu P2201」数列编辑器 解题报告
数列编辑器,在线IDE 本期的主题是洛谷的在线IDE 小学生?!小学生虐我
- [luogu P1438] 无聊的数列
[luogu P1438] 无聊的数列 题目背景 无聊的YYB总喜欢搞出一些正常人无法搞出的东西.有一天,无聊的YYB想出了一道无聊的题:无聊的数列...(K峰:这题不是傻X题吗) 题目描述 维护一个 ...
- 洛谷【P2201】数列编辑器
我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P220 ...
- P2201 数列编辑器
传送门呀呀呀呀呀呀呀呀呀呀呀呀呀 \(乍一看题目好像很难\)(实际也确实很难) \(但是我们仔细看就发现,整个数列分成了光标前和光标后两组数列\) \(我们有什么理由不分开储存呢??\) \(然后光标 ...
- luogu P4108 [HEOI2015]公约数数列——solution
-by luogu 不会啊.... 然后%了一发题解, 关键是 考虑序列{$a_n$}的前缀gcd序列, 它是单调不升的,且最多只会改变$log_2N$次,因为每变一次至少除2 于是,当我们询问x时: ...
- BZOJ 1500 Luogu P2042 [NOI2005] 维护数列 (Splay)
手动博客搬家: 本文发表于20180825 00:34:49, 原地址https://blog.csdn.net/suncongbo/article/details/82027387 题目链接: (l ...
- [Luogu] 矩阵加速(数列)
题面:https://www.luogu.org/problemnew/show/P1939 题解:https://www.zybuluo.com/wsndy-xx/note/1153810
- Luogu P2042 [NOI2005]维护数列
题目描述 请写一个程序,要求维护一个数列,支持以下 6 种操作:(请注意,格式栏 中的下划线' _ '表示实际输入文件中的空格) 输入输出格式 输入格式: 输入文件的第 1 行包含两个数 N 和 M, ...
- Luogu P2042 [NOI2005]维护数列(平衡树)
P2042 [NOI2005]维护数列 题意 题目描述 请写一个程序,要求维护一个数列,支持以下\(6\)种操作:(请注意,格式栏中的下划线'_'表示实际输入文件中的空格) 输入输出格式 输入格式: ...
随机推荐
- 【shell】文本按行逆序
1.最简单的方法是使用tac [root ~]$ seq |tac 2.使用tr和awk. tr把换行符替换成自定义的分隔符,awk分解替换后的字符串,并逆序输出 [root ~]$ seq | tr ...
- Comet OJ - Contest #14题解
Contest14的本质:区间覆盖+Tarjan( A 把距离公式两边平方即可 注意要long long code #include <algorithm> #include <io ...
- 2019春Python程序设计作业1(0319-0325)
判断题 1-1 在Python 3.x中可以使用中文作为变量名. (2分) T F Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型.(2分) T ...
- Maven Waring : GroupId is duplicate of parent groupId 和 Version is duplicate of parent version
问题描述: 新项目在创建的时候,因为用到了分模块的,所以导致子模块的pom文件,报了 如下警告: 解决办法: 直接 Window --> Preferences --> Maven -- ...
- python调用Opencv库和dlib库
python是一门胶水语言,可以调用C++编译好的dll库 python调用opencv-imggui.dll文件 https://www.cnblogs.com/zhangxian/articles ...
- 洛谷 P5022 旅行——题解
发现大部分题解都是O(n^2)的复杂度,这里分享一个O(n)复杂度的方法. 题目传送 首先前60%的情况,图是一棵无根树,只要从1开始DFS,每次贪心走点的编号最小的点就行了.(为什么?因为当走到一个 ...
- xshell的快捷键
https://blog.csdn.net/hellozpc/article/details/46753575
- [CSP-S模拟测试]:数列(数学)
题目传送门(内部题95) 输入格式 第一行三个整数$n,a,b$,第二行$n$个整数$x_1\sim x_n$表示数列. 输出格式 一行一个整数表示答案.无解输出$-1$. 样例 样例输入:2 2 3 ...
- Integer类源码浅析
1.首先Integer提供了两类工具类,包括把一个int类型转成二进等, 其实执行转换算法只有一个方法: public static String toString(int i, int radix) ...
- multiple users to one ec2 instance setup
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html usually when use pem file as ...