HDOJ 4302 - Holedox Eating 优先队列
来源:互联网 发布:sql server中isnull 编辑:程序博客网 时间:2024/06/04 17:55
题意:
Holedox在一个一维的坐标轴上...初始在0点...现在某些个时刻..会在某些位置放置蛋糕..Holedox在一些时刻进食..Holedox进食满足每次找距离最近的..若两头距离一样.按照原路继续走....问最终Holedox走了多长的路...
题解:
优先队列的典型应用....由于每走一步必定不会跨过蛋糕...用两个队列来维护哪些数在当前位置左侧...哪些在右侧....
Program:
#include<iostream>#include<stdio.h>#include<string.h>#include<cmath>#include<queue>#include<stack>#include<set>#include<time.h>#include<map>#include<algorithm>#define ll long long#define eps 1e-5#define oo 1000000007#define pi acos(-1.0)#define MAXN 100005using namespace std; priority_queue<int> ql;priority_queue<int,vector<int>,greater<int> > qr; //int型直接改变顺序int main(){ int T,cases,L,n,ans,now,face;; scanf("%d",&T); for (cases=1;cases<=T;cases++) { scanf("%d%d",&L,&n); while (!ql.empty()) ql.pop(); while (!qr.empty()) qr.pop(); now=ans=face=0; while (n--) { int tp,x; scanf("%d",&tp); if (!tp) { scanf("%d",&x); if (x>=now) qr.push(x); else ql.push(x); }else { if (!ql.size() && !qr.size()) continue; if (!ql.size()) ans+=qr.top()-now,now=qr.top(),face=0,qr.pop(); else if (!qr.size()) ans+=now-ql.top(),now=ql.top(),face=1,ql.pop(); else if (now-ql.top()==qr.top()-now) { if (!face) ans+=qr.top()-now,now=qr.top(),qr.pop(); else ans+=now-ql.top(),now=ql.top(),ql.pop(); } else if (now-ql.top()<qr.top()-now) ans+=now-ql.top(),now=ql.top(),face=1,ql.pop(); else ans+=qr.top()-now,now=qr.top(),face=0,qr.pop(); } } printf("Case %d: %d\n",cases,ans); } return 0;}
- HDOJ 4302 - Holedox Eating 优先队列
- HDOJ Holedox Eating 4302(优先队列)
- hdoj 4302 Holedox Eating 【优先队列】
- hdu - 4302 Holedox Eating (优先队列)
- HDU 4302 Holedox Eating (两个优先队列)
- hdu 4302 Holedox Eating(优先队列)
- HDU4302 Holedox Eating 优先队列
- HDU 4302 Holedox Eating(线段树/优先队列/multiset)
- hdu 4302 Holedox Eating(优先队列模拟或线段树)
- HDU/HDOJ----4302 Holedox Eating
- Hdoj 4302 Holedox Eating 【multiset】
- HDU - 4302 :Holedox Eating ,线段树、树状数组+二分,优先队列
- hdu 4302 Holedox Eating
- HDU 4302 holedox eating
- HDU 4302 - Holedox Eating
- HDU 4302 Holedox Eating
- Hdu 4302 Holedox Eating
- hdu 4302 Holedox Eating
- UVA 303 Pipe
- 为任意自定义的View隐藏时添加动画效果
- dll 导出函数名的那些事
- Windows下SVN服务端(Subversion)及客户端(TortoiseSVN)详细安装教程
- Linux下打开串口设置
- HDOJ 4302 - Holedox Eating 优先队列
- C++重载,覆盖,多态与隐藏
- 利用weblogic的virtualhost、workmanager、nodemanager、cluster搭建一套完备的集群应用
- Linux 文件访问原语
- js各种验证
- LKA linux kernel architechture
- OpenCV学习(二)读取视频文件和摄像头
- Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)
- 《重构》阅读(1)