(算法入门经典大赛 优先级队列)LA 3135(之前K说明)[通俗易懂]

(算法入门经典大赛 优先级队列)LA 3135(之前K说明)

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

A data stream is a real-time, continuous, ordered sequence of items. Some examples include sensor data, Internet traffic, financial tickers, on-line auctions, and transaction logs such as Web usage logs and telephone call records. Likewise, queries over streams run continuously over a period of time and incrementally return new results as new data arrives. For example, a temperature detection system of a factory warehouse may run queries like the following.

Query-1: �Every five minutes, retrieve the maximum temperature over the past five minutes.� Query-2: �Return the average temperature measured on each floor over the past 10 minutes.�

We have developed a Data Stream Management System called Argus, which processes the queries over the data streams. Users can register queries to the Argus. Argus will keep the queries running over the changing data and return the results to the corresponding user with the desired frequency.

For the Argus, we use the following instruction to register a query:

Register Q_num Period

Q_num (0 < Q_num ≤ 3000) is query ID-number, and Period (0 < Period ≤ 3000) is the interval between two consecutive returns of the result. After Period seconds of register, the result will be returned for the first time, and after that, the result will be returned every Period seconds.

Here we have several different queries registered in Argus at once. It is confirmed that all the queries have different Q_num. Your task is to tell the first K queries to return the results. If two or more queries are to return the results at the same time, they will return the results one by one in the ascending order of Q_num.

Input 

The first part of the input are the register instructions to Argus, one instruction per line. You can assume the number of the instructions will not exceed 1000, and all these instructions are executed at the same time. This part is ended with a line of �#�.

The second part is your task. This part contains only one line, which is one positive integer K (≤ 10000).

Output 

You should output the Q_num of the first K queries to return the results, one number per line.

Sample Input

Register 2004 200Register 2005 300#5

Sample output
20042005200420042005

代码例如以下:

/* * LA_3135.cpp * *  Created on: 2014年8月1日 *      Author: pc */#include <iostream>#include <cstdio>#include <queue>using namespace std;struct Item{	int num;//指令的序号	int period;//指令的运行周期	int time;//指令的下一次运行时间	bool operator<(const Item& b)const{		if(time != b.time){			return time > b.time;		}		return num > b.num;	}};int main(){	char s[20];	priority_queue<Item> pq;	while(scanf("%s",&s),s[0] != '#'){		Item item;		scanf("%d%d",&item.num,&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.num);		r.time += r.period;		pq.push(r);	}	return 0;}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116749.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java正则表达式语法详解及其使用代码实例[通俗易懂]

    java正则表达式语法详解及其使用代码实例[通俗易懂]java正则表达式语法详解及其使用代码实例http://www.zuidaima.com/share/1835085544524800.htm

    2022年7月19日
    21
  • Ldap服务器搭建流程

    Ldap服务器搭建流程之前搭建了个Ldap服务器,今天想要再另一台机器上搭建的时候发现很多地方还是会遇到坑,于是将搭建过程梳理记录下来,避免以后再遇到坑一、安装配置ldap1、安装ldap    yuminstall-yopenldap*2、拷贝配置文件    cp/usr/share/openldap-servers/slapd.conf.obsolete/etc/openldap/slapd…

    2022年5月14日
    39
  • mini usb接口图片_linux查看接口速率

    mini usb接口图片_linux查看接口速率华硕X450V笔记本更换intelAX200无线网卡@TOC下面内容以更换AX200为主要内容,还涉及无线网卡接口(minipcie和m.2/ngff),网线,路由器,无线网卡天线,AX200驱动(包括刷Killer驱动的问题,不建议刷!!!,没什么卵用)等与网卡性能相关的内容。目前使用情况是:有5G爽,信号强,连接速度高,稳定不掉线,网速快,有蓝牙爽歪歪。笔记本是2013年买的,老款了。换了三星860EVO500G,光驱改放机械,内存加了4G,成8G双通道,电池换了一次,又要换了。现在5Gw

    2022年9月8日
    0
  • 正式学习react(二)[通俗易懂]

    正式学习react(二)

    2022年2月22日
    40
  • php网站在服务器上邮件发送不了,在本地可以

    php网站在服务器上邮件发送不了,在本地可以

    2021年9月21日
    34
  • css3新发现height:100vh;

    css3新发现height:100vh;vh/vwvh:相对于视窗的高度,视窗被均分为100单位的vh;vw:相对于视窗的宽度,视窗被均分为100单位的vw;vmax:相对于视窗的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax;vmin:相对于视窗的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin;视区所指为浏览器内部的可视区域大小,即window.innerWidth/…

    2022年4月30日
    119

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号