fzu 1894 志愿者选拔(双端队列)
来源:互联网 发布:cad画图软件 编辑:程序博客网 时间:2024/06/04 19:40
题目链接:fzu 1894 志愿者选拔
题目大意:中文题不解释。
解题思路:第一次做双端队列的题目,就是维护队列按照从大到小的。然后队列中的每个元素有一个key值,是元素入队的顺序,然后每次加入一个元素的时候,要将队尾所有比该元素小的全部删除,放入该元素。
#include <stdio.h>#include <string.h>#include <queue>using namespace std;const int N = 105;typedef pair<int, int> pi;char order[N];void solve() {int c, cnt = 0, p = 0;deque<pi> que;while (true) {scanf("%s", order);if (strcmp(order, "C") == 0) {scanf("%s %d", order, &c);while ( !que.empty() ) {pi cur = que.back();if (cur.first >= c) break;que.pop_back();}que.push_back(make_pair(c, cnt) );cnt++;} else if (strcmp(order, "Q") == 0) {if (que.empty())printf("-1\n");else {pi tmp = que.front();printf("%d\n", tmp.first);}} else if (strcmp(order, "G") == 0) {if ( !que.empty() ) {pi cur = que.front();if (cur.second == p)que.pop_front();p++;}} else if (strcmp(order, "END") == 0) {return;}}}int main () {int cas;scanf("%d", &cas);while (cas--) {solve();}return 0;}
- fzu 1894 志愿者选拔(双端队列)
- FZU 1894 志愿者选拔[双端队列/单调队列]
- fzu 1894 志愿者选拔(单调队列)
- FZU 1894 志愿者选拔 (单调队列)
- fzu 1894 志愿者选拔(单调队列)
- FZU 1894 志愿者选拔(单调队列)
- fzu 1894 志愿者选拔(单调队列)
- FZU 1894 志愿者选拔(简单单调队列)
- fzu 1894 志愿者选拔(单调队列)
- FZU 1894 志愿者选拔 单调队列
- fzu-1894 志愿者选拔-单调队列
- 【单调队列】FZU 1894 志愿者选拔
- FZU 1894 — 志愿者选拔 单调队列
- FZU 1894 志愿者选拔 - 单调队列
- FZU - 1894选拔志愿者【单调队列】
- FZU - 1894 志愿者选拔 单调队列
- FZU Problem 1894 志愿者选拔 单调队列
- FZU 1894 志愿者选拔 单调队列
- 电脑报2013年第6期
- 基于visual Studio2013解决C语言竞赛题之0521圆盘求和
- 阿里巴巴2014笔试
- 从混沌到有序
- HDU_Steps3.3 各种背包 HDU1114 HDU1171 HDU2191 HDU2955 HDU3496 HDU2546 HDU1203 HDU3466
- fzu 1894 志愿者选拔(双端队列)
- spring mvc 使用jsr-303 @Valid实现bean的字段验证
- UVa 11344 The Huge One (模性质)
- 基于visual Studio2013解决C语言竞赛题之0522和为素
- 设计模式——桥接模式
- innodb引擎几个比较重要的配置参数
- hdu 1853 KM算法
- 自定义border (Oval Border)
- 工作中常用的js函数