POJ 2051(最小堆/优先队列)
2015-09-11 19:55
260 查看
听了菊苣的话入手了一本挑战程序设计竞赛,为了突破瓶颈......这道题是一道最小堆的题,为了方(水)便(题)于是就用了优先队列来做....
题意大致是每个id号注册的时候占用一定时间,然后不断的用最短的时间注册id号
中规中矩的一道题,重载一下运算符排好序就行了。
题意大致是每个id号注册的时候占用一定时间,然后不断的用最短的时间注册id号
中规中矩的一道题,重载一下运算符排好序就行了。
#include <iostream> #include <queue> #include <string> #include <cstring> #include <cstdio> using namespace std; struct Node { int id; int period; int time; friend bool operator < (const Node &a, const Node &b) { if (a.time == b.time) return a.id > b.id; else return a.time > b.time; } }; int main() { priority_queue<Node> q; string s; Node point; int x, y; cin >> s; while (s.compare("#") != 0) { scanf("%d %d", &x, &y); point.id = x; point.period = y; point.time = y; q.push(point); cin >> s; } int n; scanf("%d", &n); while (n--) { Node temp = q.top(); temp.time += temp.period; printf("%d\n", temp.id); q.pop(); q.push(temp); } }
相关文章推荐
- 面向对象编程(OOP)的五大特征-java学习之旅(1)
- 本地与在线图片转Base64及图片预览
- 第八章 多态(上)
- javaScript定义对象的方法
- Android Canvas 与 View之间的关系
- 得到重复的数字
- iOS 一些常见问题
- bzoj4247 挂饰
- RMS 谈软件的“货币化”,软件即服务、智能手机和隐私
- 判断CPU是大端模式还是小端模式
- GestureDetector
- Php面向对象 – 继承和重写
- Javascript的逻辑判断和循环的知识点
- 展示在屏幕上的控件的归纳
- 安装 Haproxy
- cocos2d-x部分函数介绍
- 如何设置确认selinux 模式
- 快速入门系列--MVC--04模型
- Time for Miracles (2012主题曲)之MY收藏
- C语言指针和文件笔记