option=com_onlinejudge&Itemid=8&page=show_problem&problem=3644" target="_blank" style="">题目链接:uva 1203 - Argus

题目大意:一个成为Argus的系统。支持一个Register命令

Register Q_num Period

该命令为一个祖冊出发器,每Period产生一次Q_num的时间。要求模拟k个事件,假设多个事件同一时候发生,现处理Q_num小的。

解题思路:用优先队列维护就可以,队列中依照时间小的优先。时间同样的比較Q_num,每次处理完一个时间。相应的将时间的时间加上period后放回队列中,表示下一次出发器生成的时间。

#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm> using namespace std; struct item {
int num, period, ti;
bool operator < (const item& a) const {
return ti > a.ti || (ti == a.ti && num > a.num);
}
}; int main () {
priority_queue<item> pri_que;
char str[105]; while (scanf("%s", str) == 1 && str[0] != '#') {
item u;
scanf("%d%d", &u.num, &u.period);
u.ti = u.period;;
pri_que.push(u);
} int Q;
scanf("%d", &Q);
for (int i = 0; i < Q; i++) {
item u = pri_que.top();
pri_que.pop(); printf("%d\n", u.num);
u.ti += u.period;
pri_que.push(u);
}
return 0;
}

uva 1203 - Argus(优先队列)的更多相关文章

  1. UVA 1203 - Argus(优先队列)

    UVA 1203 - Argus 题目链接 题意:给定一些注冊命令.表示每隔时间t,运行一次编号num的指令.注冊命令结束后.给定k.输出前k个运行顺序 思路:用优先队列去搞,任务时间作为优先级.每次 ...

  2. uva 1203 - Argus

    简单的优先队列的应用: 代码: #include<queue> #include<cstdio> using namespace std; struct node { int ...

  3. UVA 11997 STL 优先队列

    题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  4. LA-3135 - Argus(优先队列)

    3135 - Argus A data stream is a real-time, continuous, ordered sequence of items. Some examples incl ...

  5. UVa 10954 (Huffman 优先队列) Add All

    直接用一个优先队列去模拟Huffman树的建立过程. 每次取优先队列前两个数,然后累加其和,把这个和在放入到优先队列中去. #include <cstdio> #include <q ...

  6. poj 2051 Argus(优先队列)

    题目链接: http://poj.org/problem?id=2051 思路分析: 优先级问题,使用优先队列求解:当执行某个任务后,再增加一个任务到队列中, 该任务的优先级为执行任务的时间加上其时间 ...

  7. Ugly Numbers UVA - 136(优先队列+vector)

    Problem Description Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, ...

  8. ZOJ2212 Argus 优先队列 结构体

    #include <iostream> #include <string> #include <queue> using namespace std; struct ...

  9. 紫书 例题8-11 UVa 10954 (优先队列)

    解法和合并果子是一样的, 每次取最小的两个, 更新答案, 加入队列 #include<cstdio> #include<queue> #define REP(i, a, b) ...

随机推荐

  1. linux系统kill一些类名称相同的进程

    jps | grep "Main" | awk '{print $1}' | xargs kill 将其中的 Main 替换为需要kill的进程名即可.

  2. POJ 2431 Expedition (贪心 + 优先队列)

    题目链接:http://poj.org/problem?id=2431 题意:一辆卡车要行驶L单位距离,卡车上有P单位的汽油.一共有N个加油站,分别给出加油站距终点距离,及加油站可以加的油量.问卡车能 ...

  3. 交通运输线(LCA)

    题目大意: 战后有很多城市被严重破坏,我们需要重建城市.然而,有些建设材料只能在某些地方产生.因此,我们必须通过城市交通,来运送这些材料的城市.由于大部分道路已经在战争期间完全遭到破坏,可能有两个城市 ...

  4. Python+Selenium 自动化实现实例-单元测试报告

    代码如下: # -*- coding: utf-8 -*- from selenium import webdriver import unittest,time import HTMLTestRun ...

  5. Ant, JUnit以及Sonar的安装+入门资料

    Ant 感觉是个和Make/Grunt类似的东东,build一个项目用的.安装很容易,跟装JDK类似,就是解压->设环境变量->没了.注意装之前要先确认Java装好了(有点废话). 下载地 ...

  6. 浅谈BUFF设计

    Buff在游戏中无处不在,比如WOW.DOTA.LOL等等,这些精心设计的BUFF,让我们击节赞叹,沉迷其中. 问:BUFF的本质是什么? BUFF 是对一项或多项数据进行瞬间或持续作用的集合.(持续 ...

  7. CodeForces 772A Voltage Keepsake

    二分答案,验证. 二分到一个答案,比他小的时间都需要补充到这个时间,计算所需的量,然后和能提供的量进行比较. #include <cstdio> #include <cmath> ...

  8. Request.QueryString与Request的区别

    Request.Form可以获取表单中提交的内容,对于单选则会自定进行判断获取选中的值. Request.QueryString["id"] 只能读取通过地址栏参数传递过来的名为i ...

  9. Redis学习与总结

    Redis是业界普遍应用的缓存组件,研究一个组件框架,最直观的办法就是从应用方的角度出发,将每个步骤的考虑一番,从这些步骤入手去研究往往能够最快的体会到一个组件框架的设计哲学.以Redis为例,每当发 ...

  10. React Native 系列(一)

    前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...