我们发现前四个操作可以用双向链表维护,而最后一个操作有一个限制就是1<=k<=n,所以可以用一个数组存在光标前面的数,每次维护一下前缀和就好

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 1000010
using namespace std;
int l[N],r[N],s[N]; char c[5];
int w[N],f[N]={-1<<29},n=0,m,t,cnt=0;
int main(){freopen("editor.in","r",stdin);freopen("editor.out","w",stdout);scanf("%d",&m);for(int x;m--;){scanf("%s",c);if(*c=='I'){scanf("%d",&x);++n; ++cnt;l[cnt]=t; r[cnt]=r[t];l[r[t]]=cnt; r[t]=cnt;w[n]=w[n-1]+x; t=cnt;s[t]=x; f[n]=max(f[n-1],w[n]);} else if(*c=='D'){r[l[t]]=r[t];l[r[t]]=l[t];t=l[t];  --n;} else if(*c=='R'){if(r[t]){t=r[t];++n; w[n]=w[n-1]+s[t];f[n]=max(f[n-1],w[n]);}} else if(*c=='L'){if(n){ --n; t=l[t]; }} else { scanf("%d",&x); printf("%d\n",f[x]);}}
}

转载于:https://www.cnblogs.com/Extended-Ash/p/9477281.html

Jzoj4778 数列编辑器相关推荐

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

    数列编辑器,在线IDE 本期的主题是洛谷的在线IDE 小学生?!小学生虐我 ? 思路: 怎么说链表也是可以的吧,虽然比较繁琐 然后涉及到了前缀和和一些优化手段(应该可以说是记忆化吧)? 用p记录光标的 ...

  2. 2020.12.19【NOIP提高B组】模拟 总结

    文章目录 前言 总结 T1 Description 题解 代码 T2 Description 题解 T3 Description 题解 代码 T4 Description 题解 代码 前言 这是一个正 ...

  3. Bzoj1269 [AHOI2006]文本编辑器editor

    Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3678  Solved: 1380 Description 这些日子,可可不和卡卡一起玩了,原来可可 ...

  4. 木兰编程语言重现——支持列表操作,演示编辑器高亮

    通过添加列表操作等功能,已可编写经典排序算法.另外,作为代码编辑器的第一步,用 Python 实现了带基本语法高亮的编辑器原型,用于显示木兰源码. 功能 编辑器功能 用 tkinter 的 Text ...

  5. 推荐LaTeX在线编辑器

    完全公益的.免费. http://zh.numberempire.com/texequationeditor/equationeditor.php 这个网站还提供了很多优秀的工具: 函数求导工具 在线 ...

  6. 有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。

    这里写自定义目录标题 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一个表格 设定内容居中.居左.居右 ...

  7. 第六章第十三题(数列求和)(Sum series)

    *6.13(数列求和)编写一个方法对下面的数列求和: 编写一个测试程序,显示下面的表格: i                          m(i) ----------------------- ...

  8. 贪心法 第2关:求一个数列的极差

    任务描述 本关任务:将 n 个正整数作成的一个数列,进行如下操作:每一次删除其中的两个数 a 和 b,然后在数列中加入一个数a×b+1,如此下去直至数列中剩下一个数. 在所有按这种操作方式最后得到的数 ...

  9. 用matlab几何画板,教你用几何画板画数列图像

    几何画板在几何作图时应用很广泛,同时也能在函数中意应用,画出函数图像,不仅如此,几何画板还能在数列中进行应用,下面就介绍如何利用几何画板画数列图象. 如:求数列an=1+n/2(n=1,2,3•••• ...

最新文章

  1. 构建一个运行在Azure虚拟机上的MySQL Spring Boot应用程序
  2. 将 Shiro 作为应用的权限基础
  3. WINCE6.0+S3C6410下的DM9000A驱动
  4. 聊天工具简单实现(python 半双工聊天)
  5. 将语音搜索集成到Google Now中
  6. Java语法基础,课后实践
  7. 树莓派4bwlan驱动_树莓派4到手,你了解它所使用的新版Debian系统吗?
  8. CountDownLatch详解
  9. navicat 不能正常启动
  10. 【Zigbee】进阶篇(2) Zigbee协议栈中OSAL的执行流程
  11. Python模块化编程
  12. redis安装与调优部署文档(Linux)
  13. 入门masm32编写简单汇编程序并做具体分析
  14. ajax传参的3种形式
  15. 关于maven仓库的配置步骤
  16. 简单的摄像头自写驱动程序总结
  17. 【OJ每日一练】1039 - 阶乘数列和
  18. SQL:请用sql实现学生表中出现的学生姓名次数最多的学生姓名?
  19. poj3254/洛谷P1896 状压dp
  20. 什么是CCNA?(及相关概念)

热门文章

  1. 关于OC-省市区习题
  2. 开源牛人 zcbenz
  3. shell命令tree
  4. weblogic环境搭建
  5. centos7装完chrome无法使用yum问题解决
  6. BlackHat Arsenal USA 2018 ToolsWatch黑客工具库
  7. css3 pointer-events:none 允许点击穿透
  8. 【手势交互】9. PS Move
  9. Java系列(1) JavaEE架构
  10. 活动目录服务器(windows server 2008)