http://acm.fzu.edu.cn/problem.php?pid=1894

 Problem 1894 志愿者选拔

Accept: 1328    Submit: 4200
Time Limit: 1500 mSec    Memory Limit : 32768 KB

 Problem Description

世博会马上就要开幕了,福州大学组织了一次志愿者选拔活动。
参加志愿者选拔的同学们排队接受面试官们的面试。参加面试的同学们按照先来先面试并且先结束的原则接受面试官们的考查。
面试中每个人的人品是主要考查对象之一。(提高人品的方法有扶老奶奶过街,不闯红灯等)
作为主面试官的John想知道当前正在接受面试的同学队伍中人品值最高的是多少。于是他请你帮忙编写一个程序来计算。

 Input

输入数据第一行为一整数T,表示有T组输入数据。每组数据第一行为”START”,表示面试开始
接下来的数据中有三种情况:

  输入 含义
1 C NAME RP_VALUE 名字为NAME的人品值为RP_VALUE的同学加入面试队伍。(名字长度不大于5,0 <= RP_VALUE <= 1,000,000,000)
2 G 排在面试队伍最前面的同学面试结束离开考场。
3 Q 主面试官John想知道当前正在接受面试的队伍中人品最高的值是多少。

最后一行为”END”,表示所有的面试结束,面试的同学们可以依次离开了。
所有参加面试的同学总人数不超过1,000,000

 Output

对于每个询问Q,输出当前正在接受面试的队伍中人品最高的值,如果当前没有人正在接受面试则输出-1。

 Sample Input

2
START
C Tiny 1000000000
C Lina 0
Q
G
Q
END
START
Q
C ccQ 200
C cxw 100
Q
G
Q
C wzc 500
Q
END

 Sample Output

1000000000
0
-1
200
100
500

 Hint

数据较大建议使用scanf,printf 不推荐使用STL

========================================
有点坑爹,,,,,

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>typedef struct Node
{int num;char name[10];int data;
}queue;
queue f[1000010];int main()
{int n,m,i,j,tail,head;scanf("%d",&n);queue tmp;while(n--){char cur[10];int Num=0,count=0;head=0,tail=-1;while(scanf("%s",cur)!=EOF){if(cur[0]=='C'){scanf("%s%d",tmp.name,&tmp.data);tmp.num=++Num;while(head<=tail && f[tail].data<tmp.data){tail--;}f[++tail]=tmp;}if(cur[0]=='S')continue;if(cur[0]=='E')break;if(cur[0]=='Q'){while(tail>=head && f[head].num<=count){head++;}if(head>tail)printf("-1\n");elseprintf("%d\n",f[head].data);}if(cur[0]=='G'){count++;}}}return 0;
}

View Code

转载于:https://www.cnblogs.com/ccccnzb/p/3850983.html

fzu 1894 单调队列相关推荐

  1. FZU 1894 志愿者选拔 - 单调队列

    题目描述 分析: 暴力肯定过不了.维护一个从大到小的单调队列. 想清楚这些事: 1. 如果前面有人的val比当前加入队伍的人的val小,那么前面那个人的val永远对答案没有贡献,可以删去. 2. 再有 ...

  2. 暑期训练狂刷系列——Foj 1894 志愿者选拔 (单调队列)

    题目连接: http://acm.fzu.edu.cn/problem.php?pid=1894 解题思路: 因为出队和入队都满足队列的性质,优先单调队列的优先级有进入队列的顺序和人品的高低,在一段区 ...

  3. FZU 1894 志愿者选拔

    Problem 1894 志愿者选拔 Accept: 2308 Submit: 7003 Time Limit: 1500 mSec Memory Limit : 32768 KB Problem D ...

  4. 单调队列多重背包时间复杂度O(vn)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 多重背包问题: 有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件.怎样装才能使背包内的物品总价值最大? 网 ...

  5. 洛谷 P2219修筑绿化带 二维单调队列~

    题目链接:https://www.luogu.org/problem/P2219 emmm调了一个上午+中午,fan 题意:从N*M的中找到一个a*b的大矩形和减去a*b中的一个与之不重边界的c*d的 ...

  6. P2216 理想的正方形 单调队列 (二维)

    题目链接:https://www.luogu.org/problem/P2216 题意:求给定n*m的矩形中所有k*k的正方形块中最大值最小值之差(极差)最小 哇,大神的思路真的很帅 单调队列对每一行 ...

  7. 点分治问题 ----------- luoguP2942 [WC2010]重建计划 [点分治 + bfs + 单调队列 + 预处理建树 + 二分 + 01分数规划]

    题目链接 解题思路: 1.对于这个Avgvalue=∑e∈sv(e)∣s∣Avgvalue = \frac{\sum_{e\in s}v(e)}{|s|}Avgvalue=∣s∣∑e∈s​v(e)​ ...

  8. 解题报告:Fake Maxpooling(单调队列求矩阵的和)

    我们不妨先把这个问题中二维的矩阵简化成一维的数列.那么现在的问题就变成了一个求连续的滑动窗口最值问题:给出一个长度为n的数列和一个长度为k(k<n)的窗口,记录滑动窗口位于每个位置下的下的最大值 ...

  9. 0x12.基本数据结构 — 队列与单调队列

    目录 一.队列 0.UVA540 团体队列 Team Queue 1.AcWing 133. 蚯蚓(模拟优先队列) 二 .单调队列 0.AcWing 135. 最大子序和(单调队列) 1.luogu ...

最新文章

  1. 微信公众号点击菜单即可打开并登录微站的实现方法
  2. Flutter 中 stateless 和 stateful widget 的区别[Flutter专题60]
  3. Spring Boot(04)——创建自己的自动配置
  4. caffe训练中断后如何承接上次继续训练
  5. 《剑指offer》构建乘积数组
  6. 系统级alias vs Oracle ADR功能
  7. 技术动态 | 事理图谱,下一代知识图谱
  8. sql server计算日期到当前日期天数_Excel如何统计连续停机天数问题
  9. linux设置免密ssh,Linux终端设置免密登陆ssh(以 XShell 为例)
  10. C++STL笔记(九):map和multimap详解
  11. java动态录音_java实现动态录音,声卡有声音进来就自动录音
  12. 《菜菜的机器学习sklearn课堂》sklearn入门与决策树
  13. 浅谈Android数据库DBFlow
  14. TLS(Thread Local Storage)问题demo
  15. 《木乃伊3:龙帝之墓》清晰版无字幕BT下载
  16. vue-tippy优秀悬浮框插件的两种使用方式(解决elementui的tooltip不及时消失及定位出错问题,使用el-progress进度条模仿柱状图,tippy模仿echarts悬浮框)
  17. android声波通信demo,Android声波通信改进版
  18. 构造-牛客寒假集训营3-牛牛的DRB迷宫II
  19. 怎样设置阿里云Web应用攻击防护?
  20. 二叉树的非递归遍历详解

热门文章

  1. linux redis客户端,Redisson 3.4.0和2.9.0发布,Redis客户端
  2. c++ socket学习(1.2)
  3. gcc 编译器使用指南
  4. leetcode 344. 反转字符串 541. 反转字符串 II 双指针解
  5. 在SQL中使用DEFAULT约束
  6. java calendar_Java Calendar internalGet()方法与示例
  7. c++语句switch语句_错误:案例标签不在C中的switch语句内
  8. 第十二章 图形用户界面
  9. FreeRTOS在STM32F429上移植
  10. python网络编程---TCP服务器