暑期训练狂刷系列——Foj 1894 志愿者选拔 (单调队列)
题目连接:
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 志愿者选拔 (单调队列)相关推荐
- FZU 1894 志愿者选拔 - 单调队列
题目描述 分析: 暴力肯定过不了.维护一个从大到小的单调队列. 想清楚这些事: 1. 如果前面有人的val比当前加入队伍的人的val小,那么前面那个人的val永远对答案没有贡献,可以删去. 2. 再有 ...
- FZU 1894 志愿者选拔
Problem 1894 志愿者选拔 Accept: 2308 Submit: 7003 Time Limit: 1500 mSec Memory Limit : 32768 KB Problem D ...
- 刷题总结——生日礼物(bzoj1293单调队列)
题目: Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠.已知彩珠有N个,分为K种.简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置).某些坐标上可以没有彩珠, ...
- 刷题总结——烽火传递(单调队列+dp)
题目: 题目描述 烽火台又称烽燧,是重要的防御设施,一般建在险要处或交通要道上.一旦有敌情发生,白天燃烧柴草,通过浓烟表达信息:夜晚燃烧干柴,以火光传递军情.在某两座城市之间有 n 个烽火台,每个烽火 ...
- fzu 1894 单调队列
http://acm.fzu.edu.cn/problem.php?pid=1894 Problem 1894 志愿者选拔 Accept: 1328 Submit: 4200 Time Lim ...
- JSP期末狂刷之单选题
JSP期末狂刷之单选题 期末刷题系列,共计500题量+,题源阿尔法平台 1.若表单提交的数据中包含着图形,或大量数据的文本,此时表单的提交方法应采用() A.Reset B.Get C.Submit ...
- 【深度学习】快照集成等网络训练优化算法系列
[深度学习]快照集成等网络训练优化算法系列 文章目录 1 什么是快照集成? 2 什么是余弦退火学习率? 3 权重空间中的解决方案 4 局部与全局最优解 5 特别数据增强 6 机器学习中解决数据不平衡问 ...
- nacos集群之日志狂刷fail to connect server,after trying 567 times,last try server is...
最近遇到个问题: 三台服务器搭建的nacos集群,在后台管理页面显示3个节点都是正常状态,服务也都能注册和发现,但是每台服务器中的nacos.log一直狂刷fail to connect server ...
- Potato的暑期训练day#1题解 ——毒瘤构造
Potato的暑期训练day#1 --毒瘤构造 题目链接: A.https://vjudge.net/problem/HDU-1214 B.https://vjudge.net/problem/Cod ...
最新文章
- python怎么连接socket_python socket连接实现即时通讯
- POJ - 3630 Phone List(字典树)
- mysql备份与恢复 cat_MySQL备份和恢复具体实施
- java数据结构之快速排序
- SpannableString与SpannableStringBuilder使用
- c语言解析sql语句_解析SQL语句比解析类C语言更麻烦?
- TensorFlow 资源大全中文版
- 利用python进行数据分析—8.数据清洗与准备
- 2019华为软件精英挑战赛经验总结
- JUCE复杂的命名空间的替代方法
- saas系统用的什么语音_智能酒店语音控制系统是什么样的?
- ie属性中程序中的internet程序中的html编辑器为空,修改Internet Explorer(IE)查看源文件中的编辑器的方法...
- cv2.resize()函数不同插值方法比较
- 领航机器人广告段子_医院机器人物流科技宣传广告语
- 好用的chrome插件:鼠标手势、阅读视图、onetab
- 2021高考汕头一中成绩查询,2021汕头市地区高考成绩排名查询,汕头市高考各高中成绩喜报榜单...
- 华氏温度转换成摄氏温度
- 2023南京邮电大学通达学院《数学实验》MATLAB实验答案
- TOEIC Speak 真题
- 【I2C时序分析】-hym8563为列