HDU1896-priority_queue
2013-09-03 21:03
399 查看
题目:题目链接
题意:路上有很多石头,当你遇到奇数序列的石头就把他向前仍,偶数的不动他,如果两个石头一起,先考虑可以仍的比较近的石头仍也就是比较大的石头,这样一直下去,直到前面所有的石头都不可以仍了为止
分析:考虑用优先队列,如果是第奇数个石头,就修改其位置,入队列,否则,出对列;重载运算符
代码:
题意:路上有很多石头,当你遇到奇数序列的石头就把他向前仍,偶数的不动他,如果两个石头一起,先考虑可以仍的比较近的石头仍也就是比较大的石头,这样一直下去,直到前面所有的石头都不可以仍了为止
分析:考虑用优先队列,如果是第奇数个石头,就修改其位置,入队列,否则,出对列;重载运算符
代码:
#include <iostream> #include <cstdio> #include <string> #include <string.h> #include <map> #include <vector> #include <cstdlib> #include <algorithm> #include <cmath> #include <queue> #include <set> #include <stack> #include <functional> #include <fstream> #include <sstream> #include <iomanip> #include <numeric> #include <cassert> #include <bitset> #include <stack> #include <ctime> #include <list> #define INF 0x7fffffff #define max3(a,b,c) (max(a,b)>c?max(a,b):c) #define min3(a,b,c) (min(a,b)<c?min(a,b):c) #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; struct Point { int pos; int dis; bool operator < (const Point p) const { if(p.pos != pos) return p.pos < pos; return p.dis < dis; } }; priority_queue<Point> Q; int main() { int t; scanf("%d", &t); while(t--) { int n; scanf("%d", &n); while(!Q.empty()) Q.pop(); Point p, q; while(n--) { scanf("%d%d", &p.pos, &p.dis); Q.push(p); } int result = 0, count=1; while(!Q.empty()) { if(count & 1) { q = Q.top(); Q.pop(); q.pos += q.dis; result = q.pos; Q.push(q); } else Q.pop(); count++; } printf("%d\n", result); } return 0; }
相关文章推荐
- priority_queue<int,vector<int>,greater<int>>优先队列 按照由小到大顺序
- C++的STL模板set,multiset,map,multimap,deque,list,stack,queue和priority_queue
- JDK容器与并发—Queue—PriorityQueue
- priority_queue的用法
- [C++]C++ STL priority_queue IndexPriorityQueue 索引优先队列 比较器
- POJ 3190 priority_queue 贪心
- Java并发之BlockingQueue 阻塞队列(ArrayBlockingQueue、LinkedBlockingQueue、DelayQueue、PriorityBlockingQueue、SynchronousQueue)
- 一心多用多线程-阻塞队列(2)-PriorityBlockingQueue
- 优先队列详解priority_queue
- STL-priority_queue
- Queue+PriorityQueue
- STL中的优先级队列priority_queue
- priority_queue 优先队列容器
- priority_queue的用法
- priority_queue构造方法备忘
- 优先队列priority_queue 用法详解
- priority_queue的用法
- C++ STL学习之七:配接器priority_queue深入学习
- STL系列之五 priority_queue 优先级队列
- C++ - 库函数优先级队列(priority_queue)输出最小值 代码