【jzoj4778】【数列编辑器】
来源:互联网 发布:韩国布料模拟软件 编辑:程序博客网 时间:2024/05/09 23:16
题目大意
解题思路
如果不要询问的话显然双向链表,但是我们发现询问在光标的前面,可以用两个栈分别保存前后,开个数组存答案,移动光标时更新答案即可。
code
#include<set>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#define LF double#define LL long long#define max(a,b) ((a>b)?a:b)#define min(a,b) ((a>b)?b:a)#define fo(i,j,k) for(int i=j;i<=k;i++)#define fd(i,j,k) for(int i=j;i>=k;i--)using namespace std;int const maxq=1000000,inf=2147483647;int q,a[maxq+10],s[maxq+10],f[maxq+10],b[maxq+10];int main(){ freopen("d.in","r",stdin); freopen("d.out","w",stdout); scanf("%d\n",&q);f[0]=-inf; fo(i,1,q){ char ch=getchar(); if((ch=='I')||(ch=='Q')){ int x;scanf("%d\n",&x); if(ch=='I'){ a[++a[0]]=x; s[a[0]]=s[a[0]-1]+x; f[a[0]]=max(f[a[0]-1],s[a[0]]); }else{ printf("%d\n",f[x]); } }else{ scanf("\n"); if(ch=='D'){ a[0]--; }else if(ch=='L'){ if(a[0])b[++b[0]]=a[a[0]--]; }else if(b[0]){ a[++a[0]]=b[b[0]--]; s[a[0]]=s[a[0]-1]+a[a[0]]; f[a[0]]=max(f[a[0]-1],s[a[0]]); } } } return 0;}
0 0
- 【jzoj4778】【数列编辑器】
- 【JZOJ4778】数列编辑器
- Jzoj4778 数列编辑器
- NOIP提高组 【JZOJ4778】数列编辑器
- {题解}[jzoj4778]【NOIP2016提高A组模拟9.14】数列编辑器
- 【NOIP模拟】数列编辑器
- 【NOIP提高组】数列编辑器
- [bzoj1269]文本编辑器editor [bzoj1500]维修数列
- 【NOI2003T2】文本编辑器Editor-伸展树数列操作
- 数列编辑器 【NOIP2016提高A组模拟9.14】
- 【NOIP2016提高A组模拟9.14】数列编辑器
- 【NOIP2016提高A组模拟9.14】数列编辑器
- JZOJ 4778. 【NOIP2016提高A组模拟9.14】数列编辑器
- JZOJsenior4778.【NOIP2016提高A组模拟9.14】数列编辑器
- JZOJ.4778. 【NOIP2016提高A组模拟9.14】数列编辑器
- 数列
- 数列
- 数列
- 弱信号尖峰检测1
- HDOJ 4549 M斐波那契数列 矩阵快速幂+欧拉降幂公式
- HDU-5894-hannnnah_j’s Biological Test(组合数取模)
- 欢迎使用CSDN-markdown编辑器
- Logistic回归
- 【jzoj4778】【数列编辑器】
- 基于IDEA的单元测试
- 3D空间中射线与三角形的交叉检测算法
- Github windows客户端简单使用教程
- Android apk 签名
- 浏览器内核的理解
- android StrictMode设置导致程序崩溃
- HDU 2665 kth number(主席树)
- 51单片机的DS1302的驱动程序