hdoj 5249 KPI 【STL】
来源:互联网 发布:淘宝企业店铺 天猫 编辑:程序博客网 时间:2024/05/16 06:05
KPI
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1093 Accepted Submission(s): 469
Problem Description
你工作以后, KPI 就是你的全部了. 我开发了一个服务,取得了很大的知名度。数十亿的请求被推到一个大管道后同时服务从管头拉取请求。让我们来定义每个请求都有一个重要值。我的KPI是由当前管道内请求的重要值的中间值来计算。现在给你服务记录,有时我想知道当前管道内请求的重要值得中间值。
Input
有大约100组数据。
每组数据第一行有一个n(1≤n≤10000) ,代表服务记录数。
接下来有n行,每一行有3种形式
"in x": 代表重要值为x(0≤x≤109) 的请求被推进管道。
"out": 代表服务拉取了管道头部的请求。
"query: 代表我想知道当前管道内请求重要值的中间值. 那就是说,如果当前管道内有m条请求, 我想知道,升序排序后第floor(m/2)+1th 条请求的重要值.
为了让题目简单,所有的x都不同,并且如果管道内没有值,就不会有"out"和"query"操作。
每组数据第一行有一个
接下来有n行,每一行有3种形式
"in x": 代表重要值为
"out": 代表服务拉取了管道头部的请求。
"query: 代表我想知道当前管道内请求重要值的中间值. 那就是说,如果当前管道内有m条请求, 我想知道,升序排序后第
为了让题目简单,所有的x都不同,并且如果管道内没有值,就不会有"out"和"query"操作。
Output
对于每组数据,先输出一行
Case #i:
然后每一次"query",输出当前管道内重要值的中间值。
Case #i:
然后每一次"query",输出当前管道内重要值的中间值。
Sample Input
6in 874queryoutin 24622in 12194query
Sample Output
Case #1:87424622
思路:用一个vector 和 queue去维护信息,入队和出队用vecotr迭代器插入删除就OK了。
AC代码:
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <map>#include <set>#include <vector>#include <string>#define INF 0x3f3f3f3f#define eps 1e-8#define MAXN (10000+10)#define MAXM (200000+10)#define Ri(a) scanf("%d", &a)#define Rl(a) scanf("%lld", &a)#define Rf(a) scanf("%lf", &a)#define Rs(a) scanf("%s", a)#define Pi(a) printf("%d\n", (a))#define Pf(a) printf("%.2lf\n", (a))#define Pl(a) printf("%lld\n", (a))#define Ps(a) printf("%s\n", (a))#define W(a) while(a--)#define CLR(a, b) memset(a, (b), sizeof(a))#define MOD 1000000007#define LL long long#define lson o<<1, l, mid#define rson o<<1|1, mid+1, r#define ll o<<1#define rr o<<1|1#define PI acos(-1.0)using namespace std;int main(){ int N, kcase = 1; while(Ri(N) != EOF) { vector<int> G; vector<int> ::iterator it; queue<int> Q; printf("Case #%d:\n", kcase++); W(N) { char op[10]; Rs(op); int x; if(op[0] == 'i') { Ri(x); it = upper_bound(G.begin(), G.end(), x); G.insert(it, x); Q.push(x); } else if(op[0] == 'o') { int v = Q.front(); Q.pop(); it = find(G.begin(), G.end(), v); G.erase(it); } else Pi(G[G.size()/2]); } } return 0;}
0 0
- hdoj 5249 KPI 【STL】
- HDU 5249 KPI STL
- HDU 5249 KPI(STL,set和queue的运用)
- hdu 5249 KPI
- HDU 5249 KPI
- hdu 5249 KPI
- KPI
- KPI
- KPI
- hdu 5249 KPI 【二分查找】
- HDU 5249 KPI 二分查找
- hdoj 4022Bombing( STL )
- hdoj 4022 STL应用
- Hdoj 1053 Entropy 【STL】
- HDOJ 1029 STL MAP
- HDU ACM 5249 KPI->树状数组+二分
- HDU 5249 KPI(treap 树堆 )
- KPI啊,KPI!
- HTTP请求响应过程
- Leetcode239: Dungeon Game
- Codeforces Round #339 (Div. 2) B.Gena's Code
- 数据库,你真的懂他吗?
- Android自制滑动删除Activity组件
- hdoj 5249 KPI 【STL】
- 导入csv数据到mongodb中出现问题:exception:Invalid UTF8 character detected
- Android开发出现Warning:Gradle version 2.10 is required. Current version is 2.8. If u
- 《你是我的眼》,歌曲很好听
- 格式化数据#3:有关逻辑推理/语义的资源
- 深度学习 和 tensorflow 学习资料收集
- 池化方法总结
- 【bzoj2242】[SDOI2011]计算器 快速幂+exgcd+BSGS
- Codeforces Round #339 (Div. 2) B. Gena's Code