算法竞赛入门经典例题-优先队列(阿格斯)
来源:互联网 发布:用友网络 编辑:程序博客网 时间:2024/05/20 20:56
优先队列
例题:
阿格斯(Argus)
你的任务是编写一个称为Argus的系统。该系统是支持一个Register命令,Register Q_num Period
该命令注册了一个触发器,它每秒钟就会产生一次编号为Q_num的事件,你的任务是模拟出钱k个事件。如果多个事件同时发生,先处理Q_NUM小的事件
#include<iostream>#include<queue>using namespace std;struct Item{ int QNum,Period,Time; bool operator <(const Item& a )const { return Time>a.Time||(Time=a.Time&&QNum>a.QNum); }}int main(){ priority_queue<Item> pq; char s[20]; while(scanf("%s",s)&&s[0]!='#'){ Item item; scanf("%d%d",&item.QNum,&item.Period); item.Time=item.Period; pq.push(item); } int k; scanf("%d",&k); while(k--){ Item r=pq.top(); pq.pop(); printf("%d\n",r.QNum); r.Time+=r.Period; pq.push(r); } return 0;}
我的认识
1. 优先队列的用法。把k个有序表合并成一个有序表,然后用优先队列的方法进行管理是优先队列的精华所在,在写优先队列的时候,要注意优先队列的优先级是怎样确定的。
2. 运算符重载。此题中运算符重载是优先队列优先级确定的关键,要注意的是,运算符重载函数中return的值为true则返回后面一个值,即给后面值以更高的优先级。
3. 此题中,在输出一个Q_NUM的时候一定要重置时间,并重新写入到队列中以便下次队列取出一个正确的更新值。
0 0
- 算法竞赛入门经典例题-优先队列(阿格斯)
- 算法竞赛入门经典 例题9-1
- 算法竞赛入门经典 例题8-1
- 算法竞赛入门经典 例题 9-4
- 算法竞赛入门经典例题-勇者斗恶龙
- 算法竞赛入门经典例题-蚂蚁
- 《算法竞赛入门经典2ndEdition 》例题5-6 团体队列(Team Queue, Uva540)
- (算法竞赛入门经典 优先队列)LA 3135(前K条指令)
- 【经典优先队列例题整理】
- 算法竞赛入门经典(第二版) 刘汝佳-第八章 高效算法设计 例题(13/19)
- 算法竞赛入门经典 例题7-1 最优程序
- 算法竞赛入门经典 例题7-2 埃及分数
- 算法竞赛入门经典 例题7-3 倒水问题
- 算法竞赛入门经典 例题9-5 0-1 背包
- 算法竞赛入门经典 例题 9-2 嵌套矩形
- 算法竞赛入门经典 例题9-3 硬币问题
- 算法竞赛入门经典 例题4-2孪生素数
- 算法竞赛入门经典7.5.1例题1最优程序
- span中内容随着数字长度的增加而增大
- 寻找所有的素数的python实现
- 编程10大算法概念汇总
- Eclipse 设置调优使用
- MySQLdb安装|Centos 7 下关联 python 和 MariaDB or MySQL
- 算法竞赛入门经典例题-优先队列(阿格斯)
- LightOJ 1036
- AJAX(XMLHttpRequest)进行跨域请求方法详解(一)
- win8.1的wifi连接受限
- Codeforces Round #141 (Div. 2) C. Fractal Detector(神奇的状压DP)(好题)
- 【XML】——XML与HTML异同
- PHP+win+tomcat+mysql+httpd环境搭建记录2
- android猜歌王工程实现解析-让唱片转起来
- java多线程