hdu 4302 Holedox Eating
来源:互联网 发布:恶搞拍照软件 编辑:程序博客网 时间:2024/05/16 23:02
暴力模拟,用优先队列来存当前位置的最近左右,取的时候加判断即可。
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<queue>using namespace std;typedef __int64 ll;#define N 100005priority_queue <int, vector<int>, greater<int> > q2;//leftpriority_queue <int, vector<int>, less<int> > q1;//right//int a[N*2];int main(){int tot;int t = 1;for ( scanf("%d", &tot); tot--; ){int l, n;scanf("%d%d", &l, &n);while( !q1.empty() )q1.pop();while( !q2.empty() )q2.pop();int now = 0, x, c;int cnt = 0;ll ans = 0;int dir = 1;//1 -> rightwhile(n--){scanf("%d", &c);if ( c == 0 ){scanf("%d", &x);if( x > now )q2.push(x);elseq1.push(x);}else{if( !q1.empty() && !q2.empty() ){int x = q1.top();int y = q2.top(); if ( abs(x - now) > abs(y - now) ) { if( !dir ) dir = 1; ans += abs(now - y);now = y;q2.pop(); } else if( abs(x - now) < abs(y - now) ) { if( dir ) dir = 0; ans += abs(x - now); now = x; q1.pop(); } else { ans += abs(x - now); if( dir ) now = y, q2.pop(); else now = x, q1.pop(); }}else{if( q1.empty() && q2.empty() )continue;if( !q1.empty() ){int x = q1.top();q1.pop();if( dir )dir = 1;ans += abs(now - x);now = x;}if( !q2.empty() ){int y = q2.top();q2.pop();if( !dir )dir = 1;ans += abs(now - y);now = y;}}}//printf("ans: %I64d\n", ans);}printf("Case %d: ", t++);printf("%I64d\n", ans);}return 0;}
0 0
- 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
- hdu 4302 Holedox Eating
- hdu 4302 Holedox Eating
- hdu 4302 Holedox Eating
- HDU/HDOJ----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 (multiset模拟)
- HDU 4302 Holedox Eating(multiset)
- Hadoop平台优化综述
- 162 3. 让你排序N个比N^7小的数,要求的算法是O(n)
- Hadoop之YARN相关知识点汇总
- SUSE Cloud 2.0 安装部署图文详解
- ubuntu编译安卓5.0源码小记
- hdu 4302 Holedox Eating
- vim中自动添加注释 添加文本信息
- 数字游戏 博弈 连分数
- linux的同步与互斥
- 归并排序 递归法 C语言 实现
- 堆和栈的区别
- OpenStack Eventlet
- 如何看懂别人的项目代码
- Revit中如何通过柱子找到他连接的所有墙?