HDU 1896 Stones (Priority_queue)
来源:互联网 发布:苏州国云数据 面试难吗 编辑:程序博客网 时间:2024/05/21 15:07
【题目链接】:click here~~
【题目大意】:
就是说在一条直线道路上有n个石头,往前走,遇到一个数一个,如果遇到的是第奇数个那就把这个石头往前扔距离dis[i], 如果是第偶数个,就放置不管。
问人走到最后一个石头的位置距原地多远(遇到的最后一个石头距离出发点的位置是多少)。
【思路】模拟即可,遇到第奇数个石头,就将其加上dis[i],放回到优先队列(priority_queue)中,然后再去掉一个石头
代码:
/** Problem: HDU No.1896* Running time: 280MS* Complier: G++* Author: javaherongwei* Create Time: 14:00 2015/9/17 星期四*/#include <queue>#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;struct node{ int codr; int dis; bool operator <(const node t)const //小的优先级大 { if(t.codr!=codr) return codr>t.codr; return dis>t.dis; }}ST;priority_queue<node> que;int main(){ int t;scanf("%d",&t); while(t--) { int n;scanf("%d",&n); while(!que.empty()) que.pop(); for(int i=1; i<=n; ++i) { scanf("%d %d",&ST.codr,&ST.dis); que.push(ST); } int ll=1; while(!que.empty()) { ST=que.top();que.pop(); if(ll&1) //将奇数的石头求和距离,每次求和完重新扔进队列中 { ST.codr+=ST.dis; que.push(ST); } ll++; } printf("%d\n",ST.codr); } return 0;}
0 0
- HDU 1896 Stones (Priority_queue)
- HDU 1896 Stones priority_queue
- HDU 1896 Stones
- HDU 1896 Stones
- hdu 1896 Stones
- HDU 1896 Stones
- HDU 1896 Stones
- hdu 1896 Stones
- hdu 1896 stones 队列
- hdu 1896 stones
- HDU 1896 Stones
- HDU-1896-Stones
- HDU 1896 Stones
- HDU 1896 Stones
- hdu 1896 Stones
- HDU 1896 Stones
- hdu 1896 Stones
- HDU-1896-Stones
- Spark(1.2.0) Streaming 集成 Kafka 总结
- underscore源码学习(2)
- 资料
- html嵌入视频media方法
- ahz;ahz
- HDU 1896 Stones (Priority_queue)
- Android 使用OkHttp
- iOS9适配
- 解决 AFNetWorking报错 text/html
- kalman滤波的一些理解
- Spring Assert工具类的用法
- UITextField长度限制
- Spring AOP Advices - Around advice example - xml based configuration
- 常用socket函数详解