hdu 1896 优先队列的应用
2013-03-06 09:39
225 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1896
题目大意:
n个石头,每个在位置p,一个属性d。从最左边开始往右走,遇到一个石头,如果是第奇数次遇到,就把他往前仍d米,偶数次遇到就越过。问最后最远的石头距离起点多少米
思路:考虑用优先队列,如果是第奇数个石头,就修改其位置,入队列,否则,出对列;
View Code
题目大意:
n个石头,每个在位置p,一个属性d。从最左边开始往右走,遇到一个石头,如果是第奇数次遇到,就把他往前仍d米,偶数次遇到就越过。问最后最远的石头距离起点多少米
思路:考虑用优先队列,如果是第奇数个石头,就修改其位置,入队列,否则,出对列;
View Code
#include<iostream> #include<queue> 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 _case; scanf("%d",&_case); while(_case--){ 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; }
相关文章推荐
- HDU 1896 Stones (优先队列的应用)
- hdu 1896 优先队列的应用
- hdu 1896(2013.9.15周赛D题)优先队列
- HDU 1896 Stones 【优先队列】
- HDU 1873 看病要排队(优先队列的简单应用)
- hdu 杭电1896 Stones【优先队列】
- hdu 1896 优先队列
- HDU 1896 Stones ——STL 优先队列
- hdu 1896 Stones(优先队列 Dijkstr)
- HDU - 1896 Stones —— 优先队列——贪心
- HDU - 1896 : Stones(优先队列、有序对)
- HDU 1896 Stones --优先队列+搜索
- 【HDU]-1896-Stones(优先队列,好)
- HDU 1896 Stones --优先队列+搜索
- HDU 1434幸福列车——优先队列的应用
- hdu杭电1873 看病要排队【优先队列】
- hdu 1026:Ignatius and the Princess I(优先队列 + bfs广搜。ps:广搜AC,深搜超时,求助攻!)
- 【搜索之BFS + 优先队列】杭电 hdu 1242 Rescue
- HDU - 1509 Windows Message Queue (优先队列 重载运算符)
- 【优先队列】HDU 1873——看病找医生