codeforcse基础题——#357(div2)C
来源:互联网 发布:mac电脑开机问号文件夹 编辑:程序博客网 时间:2024/05/01 19:59
#357(div2)C
题目大意 : 有一个小根堆, 支持插入, 查询堆顶, 删除堆顶三个操作, 现在给你长度为n(n <= 100000)一个不完整的操作序列, 让你在其中加入最少的操作使其合法, 输出最小操作数及方案。题解: 直接模拟即可, 依次读入操作, 只有查询堆顶时可能有不合法的情况, 这时只要一直将堆顶弹出, 直到堆顶大于查询的值, 在将查询的值插入, 就能使操作合法。(写的时候注意一些细节…)
#include <cstdio>#include <queue>#include <iostream>using namespace std;typedef long long LL;priority_queue<int, vector<int>, greater<int> >q;char ty[100010][10];LL d[100100], ans[500100], ans0[500100];int main(){ int n, x, sum = 0; scanf("%d", &n); for (int i = 1; i <= n; i ++){ cin >> ty[i]; if (ty[i][0] != 'r') scanf("%I64d", &d[i]); } for (int i = 1; i <= n; i ++){ if (ty[i][0] == 'i'){ q.push(d[i]); ans[++ sum] = 1, ans0[sum] = d[i]; } else if (ty[i][0] == 'r'){ if (q.empty()){ ans[++ sum] = 1, ans0[sum] = 0; q.push(0); } q.pop(); ans[++ sum] = 2; } else { while((!q.empty()) && q.top() < d[i]){ //printf("*"); ans[++ sum] = 2; q.pop(); } if ((q.empty()) || q.top() != d[i]){ q.push(d[i]); ans[++ sum] = 1, ans0[sum] = d[i]; ans[++ sum] = 3, ans0[sum] = d[i]; } else{ ans[++ sum] = 3, ans0[sum] = d[i]; } } } printf("%d\n", sum); for (int i = 1; i <= sum; i ++){ if (ans[i] == 1) printf("insert %I64d\n", ans0[i]); else if (ans[i] == 2) printf("removeMin\n"); else if (ans[i] == 3) printf("getMin %I64d\n", ans0[i]); } return 0;}
0 0
- codeforcse基础题——#357(div2)C
- codeforces基础题——#362(div2)C
- codeforces基础题——#358(div2)C
- codeforces基础题——#356(div2) C
- codeforces基础题——#357(div2) D
- CodeForcse 29C (DFS+离散化)
- codeforces基础题——#362(div2)D
- codeforces基础题——#361(div2)D
- codeforces基础题——#358(div2)D
- codeforces基础题——#356(div2) D
- codeforces基础题——#161(div2) E
- CF——#32div2 C
- codeforces147 div2 C题
- CF Div2-206-C题
- Codeforece#219(DIV2) C题
- codeforces 260 div2 C题
- cf div2(262)c题
- CF——#135div2 C(字符串处理)
- mysql 数设置据库编码及避免导入乱码问题
- 文章标题 Gym100971B :Derangement
- 【Hard】23. Merge k Sorted Lists
- 火车硬座车厢座位分布表
- 如何在 CentOS 7 用 cPanel 配置 Nginx 反向代理
- codeforcse基础题——#357(div2)C
- 送给大一新生的一些话
- 简单记事本的实现(JAVA)
- Android Logger 日志框架源码分析
- Java控制小数位,获得随机数
- Linux基本操作命令总结以及目录结构图解
- Nginx源码安装及调优配置
- 【Android-I】Android开发之常见错误:Dx unsupported class file version 52.0...while parsing com/...
- Java学习心得(一)