题目链接:http://codeforces.com/contest/821/problem/C

题意:给一堆入栈记录和一个删除操作,现在要求remove的时候栈顶必须是上一个remove的值+1。还可以整理栈,就是调整所有的顺序,问最少调整次数。

模拟就行,遇到不对的就整理下,整理操作可以等价为栈清空。栈空的时候不管即可。

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3
 4 typedef long long LL;
 5 const int maxn = 900100;
 6 int n, st[maxn], top;
 7 char op[5];
 8
 9 signed main() {
10     // freopen("in", "r", stdin);
11     while(~scanf("%d", &n)) {
12         int m = n << 1;
13         int pre = 0, v; top = 0;
14         int ret = 0;
15         while(m--) {
16             scanf("%s", op);
17             if(*op == 'a') {
18                 scanf("%d", &v);
19                 st[top++] = v;
20             }
21             else {
22                 if(top == 0) {
23                     pre++;
24                     continue;
25                 }
26                 if(st[top-1] == pre + 1) top--;
27                 else {
28                     ret++;
29                     top = 0;
30                 }
31                 pre++;
32             }
33         }
34         printf("%d\n", ret);
35     }
36     return 0;
37 }

转载于:https://www.cnblogs.com/kirai/p/7162287.html

[CF821C] Okabe and Boxes(模拟,栈)相关推荐

  1. CF821C Okabe and Boxes

    思路: 模拟.不一致的时候直接清空栈即可. 实现: 1 #include <iostream> 2 #include <cstdio> 3 #include <vecto ...

  2. Codeforces 821C - Okabe and Boxes

    821C - Okabe and Boxes 思路:模拟.因为只需要比较栈顶和当前要删除的值就可以了,所以如果栈顶和当前要删除的值不同时,栈就可以清空了(因为下一次的栈顶不可能出现在前面那些值中). ...

  3. 六、使用数组模拟栈的思路及代码实现

    使用数组模拟栈的实现过程 1.栈的介绍 (1) 栈的英文为(stack) (2) 栈是一个先入后出(FILO-First In Last Out)的有序列表. (3) 栈(stack)是限制线性表中元 ...

  4. 第一回写的用arraylist模拟栈操作

    package hashMap; import java.util.ArrayList; import d.Student; /*** 用ArrayList模拟栈操作* @author zhujiab ...

  5. 032_使用ArrayDeque模拟栈结构

    import java.util.ArrayDeque; import java.util.Iterator;/*** 使用ArrayDeque模拟栈结构*/ public class DequeSt ...

  6. 数组模拟栈和队列板子

    使用数组模拟数据结构栈和队列 栈:后进先出 对于栈:我们使用tt表示栈顶的下标,如果tt==0表示栈空 队列:先进先出 对于队列,我们使用hh表示队首,tt表示队尾,tt初始化为-1,判断队列是否为空 ...

  7. Leetcode402 remove-k-digits贪心+vector模拟栈的思想

    题目 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: ...

  8. CCF-CSP 201903-2 二十四点 Python语言 模拟栈实现

    项目场景: 二十四点问题本质是处理表达式,一提到处理表达式第一反应大概就是使用栈来处理,虽然网上大部分使用python语言处理二十四点问题都是利用强大的eval()函数,但我仍然想要使用python的 ...

  9. LinkedList 模拟栈和队列

    LinkedList 比ArrayList 提供了更多的方法,其中有两个方法可以实现栈和队列的操作. removeFirst() 移除并返回此列表中的第一个元素. removeLast() 移除并返回 ...

最新文章

  1. React 深入系列3:Props 和 State
  2. Windows系统 配置Java的JDK环境变量
  3. java规定数组的下标_Java数组元素下标的范围是
  4. Spring Boot 2.3.3 正式发布!
  5. 【报告分享】2020年B站内容营销报告.pdf(附下载链接)
  6. 爱立信两大股东不满股价表现 欲撤换CEO卫翰思
  7. 开源视频平台:ViMP
  8. HTML Button.onclick事件汇总
  9. 对失恋男人的10条忠告
  10. springboot全局异常处理_SpringMVC全局异常处理
  11. Python+Superset:商业智能数据分析
  12. 第1章 微处理器、微型计算机、微型计算机系统的区别
  13. 【cocos2d游戏开发实战】一款射击类小游戏《Zombie Age》的开发(一)
  14. 英语语法总结--主谓一致
  15. Wine的安装和配置(实现中文输入法和中文的复制粘贴)(转)
  16. c语言如何统计不同分数段学生人数,excel中如何统计不同班级各个分数段的学生人数...
  17. Facebook公布2012年Q2财务数据
  18. 2022-2028年全球与中国树突状细胞癌疫苗免疫治疗行业深度分析
  19. Web实现文件上传和下载
  20. 紧致卷积网络设计——Shift卷积算子

热门文章

  1. List集合,Set集合
  2. php 包含js文件,js查找字符串中的字符 PHP文件包含详细讲述
  3. 14.3 配置SSTP运行环境
  4. maven项目从idea上删除后,项目名称依然被占用的解决办法
  5. 2.玩客云armbian5.9安装docker
  6. 初学JavaScript输出语句
  7. matlab氢原子杂化轨道,用matlab实现氢原子的sp杂化轨道可视化.docx
  8. MsChart控件在VC++中的使用
  9. 倒计时四天!第2期大模型讲习班报名中,顶尖专家面授,多角度系统培训
  10. HDU 1870解题报告(愚人节的礼物)