fzu 1894 单调队列
生活随笔
收集整理的這篇文章主要介紹了
fzu 1894 单调队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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想知道當前正在接受面試的隊伍中人品最高的值是多少。 |
所有參加面試的同學總人數不超過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 单调队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#基础加强_泛型的基本原理
- 下一篇: python 核心编程第5章(习题)