题目连接:

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

解题思路:

  因为出队和入队都满足队列的性质,优先单调队列的优先级有进入队列的顺序和人品的高低,在一段区间中如果出现x[i]是最大的,那么[0,i-1]区间内的数就不用记录了,所以单调队列里面可以按照人品值降序排列,输出的时候判断一下当前元素是否已经出队即可。

 1 #include <cstdio>
 2 #include <cstring>
 3 using namespace std;
 4 const int maxn = 1000005;
 5
 6 struct node
 7 {
 8     int index, val;
 9 }Q[maxn];
10
11 int main ()
12 {
13     int t;
14     char str[10];
15     scanf ("%d", &t);
16     while (t --)
17     {
18         int head, last, num, cur, x;
19         scanf ("%s", &str);
20         head = last = x = 0;
21         cur = -1;
22         while (scanf ("%s", str), strcmp(str, "END"))
23         {
24             if (str[0] == 'C')
25             {
26                 scanf ("%s %d", str, &num);
27                 //当前位置不在队首,进队元素优先级高于当前元素
28                 while (head<=cur && Q[cur].val<num)
29                     cur --;
30                 Q[++cur].index = x++;
31                 Q[cur].val = num;
32             }
33             else if (str[0] == 'Q')
34             {//队首元素已经出队,就向下遍历次优元素
35                 while (head<=cur && Q[head].index<last)
36                     head ++;
37                 if (head > cur)
38                     printf ("-1\n");
39                 else
40                     printf ("%d\n", Q[head].val);
41             }
42             else
43                 last ++;//出队元素数目
44         }
45     }
46     return 0;
47 }

转载于:https://www.cnblogs.com/alihenaixiao/p/4611526.html

暑期训练狂刷系列——Foj 1894 志愿者选拔 (单调队列)相关推荐

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

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

  2. FZU 1894 志愿者选拔

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

  3. 刷题总结——生日礼物(bzoj1293单调队列)

    题目: Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可以没有彩珠, ...

  4. 刷题总结——烽火传递(单调队列+dp)

    题目: 题目描述 烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上.一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以火光传递军情.在某两座城市之间有 n 个烽火台,每个烽火 ...

  5. fzu 1894 单调队列

    http://acm.fzu.edu.cn/problem.php?pid=1894  Problem 1894 志愿者选拔 Accept: 1328    Submit: 4200 Time Lim ...

  6. JSP期末狂刷之单选题

    JSP期末狂刷之单选题 期末刷题系列,共计500题量+,题源阿尔法平台 1.若表单提交的数据中包含着图形,或大量数据的文本,此时表单的提交方法应采用() A.Reset B.Get C.Submit ...

  7. 【深度学习】快照集成等网络训练优化算法系列

    [深度学习]快照集成等网络训练优化算法系列 文章目录 1 什么是快照集成? 2 什么是余弦退火学习率? 3 权重空间中的解决方案 4 局部与全局最优解 5 特别数据增强 6 机器学习中解决数据不平衡问 ...

  8. nacos集群之日志狂刷fail to connect server,after trying 567 times,last try server is...

    最近遇到个问题: 三台服务器搭建的nacos集群,在后台管理页面显示3个节点都是正常状态,服务也都能注册和发现,但是每台服务器中的nacos.log一直狂刷fail to connect server ...

  9. Potato的暑期训练day#1题解 ——毒瘤构造

    Potato的暑期训练day#1 --毒瘤构造 题目链接: A.https://vjudge.net/problem/HDU-1214 B.https://vjudge.net/problem/Cod ...

最新文章

  1. python怎么连接socket_python socket连接实现即时通讯
  2. POJ - 3630 Phone List(字典树)
  3. mysql备份与恢复 cat_MySQL备份和恢复具体实施
  4. java数据结构之快速排序
  5. SpannableString与SpannableStringBuilder使用
  6. c语言解析sql语句_解析SQL语句比解析类C语言更麻烦?
  7. TensorFlow 资源大全中文版
  8. 利用python进行数据分析—8.数据清洗与准备
  9. 2019华为软件精英挑战赛经验总结
  10. JUCE复杂的命名空间的替代方法
  11. saas系统用的什么语音_智能酒店语音控制系统是什么样的?
  12. ie属性中程序中的internet程序中的html编辑器为空,修改Internet Explorer(IE)查看源文件中的编辑器的方法...
  13. cv2.resize()函数不同插值方法比较
  14. 领航机器人广告段子_医院机器人物流科技宣传广告语
  15. 好用的chrome插件:鼠标手势、阅读视图、onetab
  16. 2021高考汕头一中成绩查询,2021汕头市地区高考成绩排名查询,汕头市高考各高中成绩喜报榜单...
  17. 华氏温度转换成摄氏温度
  18. 2023南京邮电大学通达学院《数学实验》MATLAB实验答案
  19. TOEIC Speak 真题
  20. 【I2C时序分析】-hym8563为列

热门文章

  1. JAVA15.JDK15新特性.4 TextBlock
  2. 运营私域流量转化没效果为什么?
  3. 快手抢占“短视频第一股”,宿华都有哪些底牌?
  4. JAVAEE联邦软件管理系统试题
  5. 《去哪网编程题》filename extension
  6. 数据抽象能力---适合任何行业
  7. Loader之二:CursorLoader基本实例
  8. 数据挖掘之关联分析六(子图模式)
  9. scala学习笔记-Array、ArrayBuffer以及遍历数组(7)
  10. GMQ稳定币为区块链资产在金融市场的进一步应用打开了一扇大门