参考链接:https://blog.csdn.net/SSLGZ_yyc/article/details/81700623

对顶栈的思想:

建立两个栈,栈A存储从序列开头到当前光标的位置的一段序列,栈B存储从光标到结尾的序列。这两个栈一共存储了整个序列。

java版本代码

import java.util.Scanner;
import java.util.Stack; public class Main {
public static void main(String[] args) {
int f[]=new int[200000];
f[0]=-999999999;
int sum=0;
Scanner in = new Scanner(System.in);
int n=in.nextInt();
while(in.hasNext())
{
Stack<Integer> a=new Stack<Integer>();
Stack<Integer> b=new Stack<Integer>(); while((n--)!=0) {
String s=in.next();
if (s.equals("I")) {
int x=in.nextInt();
a.push(x);
sum=sum+x;
int l=a.size();
f[l]=Math.max(sum, f[l-1]);
}else if (s.equals("D")&&a.size()>0) {
int x=a.pop();
sum=sum-x;
}else if (s.equals("L")&&a.size()>0) {
int x=a.pop();
sum=sum-x;
b.push(x);
}else if (s.equals("R")&&b.size()>0) {
int x=b.pop();
a.push(x);
sum+=x;
int l=a.size();
f[l]=Math.max(sum,f[l-1]);
}else if (s.equals("Q")) {
int x=in.nextInt();
System.out.println(f[x]);
}
}
}
}
}

 c++版本代码:

#include<iostream>
#include<stack>
#include<stdio.h>
using namespace std;
int f[2000000]; int main()
{
char ch,zfc[200];
int n;
while (scanf("%d",&n)!=EOF)
{
stack <int> a;
stack <int> b;
int sum=0,x;
f[0]=-999999999;
while (n--)
{
scanf("%s",zfc);
ch=zfc[0];
if (ch=='I')
{
scanf("%d",&x);
a.push(x);
sum+=x;
int l=a.size();
f[l]=max(sum,f[l-1]);
} else
if (ch=='D'&&a.size()>=1)
{
x=a.top();
a.pop();
sum-=x;
} else
if (ch=='L'&&a.size()>=1)
{
x=a.top();
a.pop();
sum-=x;
b.push(x);
} else
if (ch=='R'&&b.size()>=1)
{
x=b.top();
b.pop();
a.push(x);
sum+=x;
int l=a.size();
f[l]=max(sum,f[l-1]);
} else
if (ch=='Q')
{
scanf("%d",&x);
printf("%d\n",f[x]);
}
}
}
return 0;
}

  

 

0x11栈之Editor的更多相关文章

  1. 0x11栈之火车进栈

    参考<算法竞赛进阶指南>p.49 题目链接:https://www.acwing.com/problem/content/description/131/ 递推与递归的宏观描述 对于一个待 ...

  2. 0x11 栈

    这个不难吧,算是常识了..毕竟也是刷过USACO的人 对顶栈这东西前几天才遇到过,好像和在线求中位数那东西放一起了吧 单调栈倒是没什么...贴个代码算了.一开始有点蠢的每个位置算,后来发现出栈再算就行 ...

  3. 2019CSP-S初赛知识点汇总

    0x00 基本算法 0x01 位运算 0x02 前缀和与差分 0x03 二分 0x04 倍增 0x05 排序 0x06 离散化 0x07 高精度 0x10 数据结构 0x11 栈和队列 0x12 链表 ...

  4. Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor 栈 链表

    E. Correct Bracket Sequence Editor 题目连接: http://www.codeforces.com/contest/670/problem/E Description ...

  5. HDOJ 4699 Editor 栈 模拟

    用两个栈模拟: Editor Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  6. hdu 4699 Editor 模拟栈

    思路:刚开始用STL中的栈,一直RE……,之后改为手动模拟栈操作,在注意点细节就可以了!!! 代码如下: #include<cstdio> #include<cstring> ...

  7. hdu4699 Editor 2013 多校训练第十场 D题 数列维护 splay | 线段树 | 栈!!!!!

    题意:维护一个文本编辑,并且查询最大前缀和. 写了splay,wa了13次 过了之后觉着特傻逼.发现题解两个栈就可以了,光标前后维护两个栈,维护前面的栈的前缀和 和 最大前缀和. 哎,傻逼,太弱了,还 ...

  8. [HDU4669]Editor (栈)

    题意 模拟编辑器,还是给链接吧 https://vjudge.net/problem/HDU-4699 思路 两个栈 代码 //poj1050 //n^4暴力 #include<algorith ...

  9. Editor HDU - 4699 (栈)

    Problem Description   Sample Input 8 I 2 I -1 I 1 Q 3 L D R Q 2   Sample Output 2 3 Hint The followi ...

随机推荐

  1. STM32 STOP模式唤醒后的时钟

    进了STOP模式后,PLL停掉了,所以,如果开始的时钟配置,用的是PLL,那么唤醒后,需要重新配置RCC. 如果使用的是PLL,及时是用MSI作为时钟源,放大出来的,比如4M的MSI,PLL放大到48 ...

  2. Spring boot 国际化自动加载资源文件问题

    Spring boot 国际化自动加载资源文件问题 最近在做基于Spring boot配置的项目.中间遇到一个国际化资源加载的问题,正常来说只要在application.properties文件中定义 ...

  3. RoR - More Active Record

    Active Record Scope: default_scope:   默认的检索方式 #Use unscoped to break out of the default class Hobby ...

  4. nodeJs和JavaScript的异同(转)

    原文:https://blog.csdn.net/lazycode_cat/article/details/61916291 JavaScript组成:ECMAScript(定义这门语言的基础,比如语 ...

  5. Synchronize,Lock, ReentrantLock,ReentrantReadWriteLock

    下面ReentrantLock是Lock接口的具体实现 如果想在线程等待时(即等待获得锁时)可以被中断,用lockInterruptibly:注意:在线程已经获得锁正在执行时,用Synchronize ...

  6. 学号 20175201张驰 《Java程序设计》第7周学习总结

    学号 20175201张驰 <Java程序设计>第7周学习总结 教材学习内容总结 第八章 String类能有效地处理字符序列信息,它的常用方法有: public int length()可 ...

  7. windows共享文件夹至centos系统文件夹下

    1. window 共享文件夹 https://jingyan.baidu.com/article/358570f6633ba4ce4624fc48.html 2. 在访问Windows共享资料之前, ...

  8. DS1-14

    #include <stdio.h> #define MAXSIZE 10000 int MaxSubseqSum4(int List[], int N); int main() { in ...

  9. 将pucharm与anaconda配合使用

    一个用来更新各种包,另一个负责美美的打代码,把pycharm, setting  project interpreter,选中anaconda中的python.exe.搞定.anaconda prom ...

  10. requests 获取百度推广信息

    2019年的第一篇博客,恩,好久没写过博客了,恩,忘了,哈哈,实在是太懒了 今天写一个爬取百度推广数据的爬虫,当然我写的肯定不是那么的完美,但是能用,大哭 注意:有的时候,get或post方法获取数据 ...