博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
#420 Div2 C
阅读量:6212 次
发布时间:2019-06-21

本文共 929 字,大约阅读时间需要 3 分钟。

题意

不断把数加入到一个栈里,取数的时候要求按照 1~n 的顺序取数,每次取数保证数一定在栈里,如果要取的数不在栈头,可以选择对栈排序一次。问最少排序几次。

分析

只要栈头的数不符合条件,就要去排序,但是不能直接去模拟。不用真的去排序,可以选择直接清空栈,只要没有新数加进来,后面的所有取数的操作一定是符合条件的(因为每次取数时保证数一定在栈内),如果有新数加进来,若正好符合条件,直接取它即可,否则清空栈。

code

#include
using namespace std;typedef long long ll;int main() { ios::sync_with_stdio(0); cin.tie(0); int n, cnt = 0; cin >> n; stack
sta; int tp = 1; for(int i = 0; i < 2 * n; i++) { string s; cin >> s; if(s == "add") { int one; cin >> one; sta.push(one); } else { if(!sta.empty()) { if(sta.top() != tp) { while(!sta.empty()) sta.pop(); cnt++; } else { sta.pop(); } } tp++; } } cout << cnt << endl; return 0;}

转载于:https://www.cnblogs.com/ftae/p/7095745.html

你可能感兴趣的文章
爱他,让他去探索
查看>>
df命令、du命令、磁盘分区
查看>>
维护服务器安全的七大技巧:
查看>>
VMware VSAN 配置
查看>>
Daily Rate
查看>>
android studio调试
查看>>
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
查看>>
tomcat 的 JVM 设置和连接数设置
查看>>
Retrofit
查看>>
最全面的使用idea和gradle把java项目打包成jar的方法
查看>>
Linux汇编gdb
查看>>
iOS Data Storage Guidelines 和 "do not back up"文件属性
查看>>
Part I Week 1: 简介
查看>>
Exchange2016正式版功能介绍及全新安装配置
查看>>
第八节 项目合同管理、信息(文档)和配置管理
查看>>
Spring REST 配置CSRF防护
查看>>
查看 SQL Server 2000 数据表的大小
查看>>
MariaDB linux centos安装
查看>>
我的友情链接
查看>>
nagios 安装
查看>>