LINK:BNUOJ 26475 Cookie Selection

题意:

你在不停的输入数字a1,a2,a3,......,ak,当你输入#时,就把已输入数字中的第k/2+1删除,然后剩下的数字又组成一个新的数列a1,a2,......,a(k-1)。把删除的数输出来~╮(╯▽╰)╭

刚开始理解错了题意......各种WA......想半天还不知道错哪.....最后搞清,自己压根连题目都弄错了......就没有再继续战斗的想法了~~~~(>_<)~~~~

该题要用到优先队列......具体方法参见代码ORZ......

代码【一】:

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
priority_queue<int> p;
priority_queue<int,vector<int>,greater<int> > q;
char str[];
void doit(){
while(p.size()>q.size()){
q.push(p.top());
p.pop();
}
while(q.size()>p.size()+){
p.push(q.top());
q.pop();
}
}
int main(){
int i,j,k;
while(~scanf("%s",str)){
if(str[]=='#'){
printf("%d\n",q.top());
q.pop();
doit();
}
else{
sscanf(str,"%d",&k);
if(!q.empty()&&k>q.top()) q.push(k);
else p.push(k);
doit();
}
}
return ;
}

//memory:3132KB    time:712ms

代码【二】://这代码.......不是很懂啊~

 #include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <set>
using namespace std;
typedef set<double> si;
int main(void)
{
si X;
si::iterator it = X.begin();
char str[];
while (scanf("%s", str) == )
{
if (str[]== '#')
{
printf("%.0lf\n", *it);
X.erase(it++);
if (X.size() % )
--it;
}
else
{
double x = atoi(str)+0.4*drand48(); //atoi(str)能把字符串str转化为数字,drand48()产生一个随机的double数
X.insert(x);
if (X.size() == )
it = X.begin();
else
{
if (x < *it)
--it;
if (X.size() % == ) ++it;
}
}
}
return ;
}

//memory:10792KB       time:1288ms

最新文章

  1. Linux下常用的硬件信息查看命令
  2. Python学习笔记17—Tornado
  3. dede数据库文件导入失败的可能原因是数据表前缀不同,这里的失败指的是mysql添加了数据,但后台不显示
  4. Scrum敏捷软件开发之技术实践——测试驱动开发TDD
  5. tomcat配置访问日志,访问首页主目录
  6. Android的状态栏通知(Notification)
  7. 前端魔法堂:解秘FOUC
  8. sql server在一个字段相同值时,另一个字段结果拼接
  9. 19-07 【docker】随笔笔记
  10. server time zone
  11. nginx安装以及调优
  12. Hadoop2.7.6_05_mapreduce-Yarn
  13. java多线程有哪些实际的应用场景?
  14. NIO-新的io操作方式
  15. Robot framework selenium driver download
  16. Zookeeper 在Linux系统的安装
  17. 查看内核页表kernel_page_tables (aarch32)
  18. HDU--Elevator(水题)
  19. 对volatile不具有原子性的理解
  20. 理解golang中的channel

热门文章

  1. java中存在的内存泄漏
  2. Java泛型:泛型类、泛型接口和泛型方法
  3. jdbc操作mysql
  4. 情人节红攻瑰--Delphi版本
  5. 万网空间如何安装wordpress
  6. linux编译注解
  7. Java中的protected访问修饰符
  8. bzoj4028
  9. UVa 11040 (水题) Add bricks in the wall
  10. php简单实现MVC