UVALive - 3135 Argus

2024-06-05 22:18
文章标签 uvalive argus 3135

本文主要是介绍UVALive - 3135 Argus,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题意:有一系列的事件,它每Period秒钟就会产生编号为qNum的事件,你的任务是模拟出前k个事件,如果多个事件同时发生,先处理qNum小的事件

思路:用优先队列模拟

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;struct item{int qNum,Per,Time;bool operator <(const item &a) const{return Time > a.Time || (Time == a.Time && qNum > a.qNum);}
};int main(){priority_queue<item> pq;char a[20];while (scanf("%s",a) != EOF && a[0] != '#'){item it;scanf("%d%d",&it.qNum,&it.Per);it.Time = it.Per;pq.push(it);}int K;scanf("%d",&K);while (K--){item r = pq.top();pq.pop();printf("%d\n",r.qNum);r.Time += r.Per;pq.push(r);}return 0;
}



这篇关于UVALive - 3135 Argus的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034316

相关文章

CSU 1623 Inspectors(二分图最大权匹配 KM算法)(UVAlive 6879)

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1623 选用一些边 覆盖所有的点 使得这些边的权值和最小 比赛时的想法是用一般图最大权匹配 样例也过了 但是提交总是WA 看kuangbin模版中写的是点的个数必须是偶数。。是不是有可能是这个原因 改用二分图最大权匹配之后就过了。。。。 #include <cstdio>

UVALive 6493 - Round Robin

题目链接:题目链接 就是初学编程的经典例子: N个小孩围成一个圈,给出一个数T,每次数到一个小孩,该小孩就得一分; 数到T的小孩退出。。。 但这里不同的是结束条件不再是只剩最后一个小孩,而是当剩余所有小孩的分数都相同时结束,并输出剩余的小孩数,和他们的得分 组队做题,我在这道题上坑了很久。。。 原因不是我不知道怎么做,而是想着优化模拟,比如N=5,T=17时,第一次可以判断每个小孩肯定

UVALive 6499 - sort me

题目是PDF文档格式的,所以直接贴题目链接吧: 题目链接 一般我们对字符串排序是根据ABC……XYZ的字母序进行排序,现在题目给出新的字母序,和待排序的字符串;         要求根据这些新的字母序题意是给出新的排序后的字符串 我想一般人的想法肯定是类比ABC……XYZ序列,再排序吧 我的想法就是为每一个待排序的字符串关联一个字符串,在这个关联字符串中保存当前字符串对应的ABC……XYZ序

【UVAlive】康托展开的思想

题目链接:点击打开链接 题目大意:就是给你一个n 求0~n之间的数 的k-进制和(-k)进制相同的数目 题目分析:要是的k和(-k)进制的数相同,那么就是在转化为k(-k)进制之后,在奇数位上 为全零。                     对于n在转化为长度为len的k进制数后 从最高位开始“递归”看                    即康托展开的思想。 #inclu

UVALive 4513 Stammering Aliens (hash+二分 or 后缀数组)

大白书上的一道例题,后缀数组的模板题吧,今天想练练hash,结果就wa+Tle了一脸。 还真没见过不卡自然取模,而卡自行取模的题,今天算是见到了。。取了好几个x,还是发生了碰撞?! 题意: 让你根据所给字符串,找出至少出现m次的最长字符串,输出最长的长度和起始位置的最大值。 思路: 字符串hash+二分。(等学会了后缀数组再来套下模板) 二分len,然后判断长度是否合法。 判断

UVALive - 2191 Potentiometers

题意:S操作将x改为y,M操作求[x,y]的和 思路:稍加改动一下树状数组就行了,当然线段树也可以 #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 400005;int n,t[MAXN];int lowbi

UVALive - 3942 Remember the Word (Trie)

题意:给你一个有S个不同单词组成的字典和一个长字符串,把这个字符串分解成若干个单词的连接,有多少种方法 思路:转化为Trie树的形式储存,用d(i)表示字符从i开始的字符串的分解方案,每次搜索到一个单词末的时候就可以累加了 #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>const

UVALive - 3644 X-Plosives

题意:每个化合物都是有两种元素组成的,如果车上存在k个简单化合物时,如果它和已装车的化合物形成易燃物的话,你就应该拒绝装车,否则装车,输出没有装车的个数 思路:简单的并查集应用 #include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const in

uvalive 2088 - Entropy(huffman编码)

题目连接:2088 - Entropy 题目大意:给出一个字符串, 包括A~Z和_, 现在要根据字符出现的频率为他们进行编码,要求编码后字节最小, 然后输出字符均为8字节表示时的总字节数, 以及最小的编码方式所需的总字节数,并输出两者的比率, 保留一位小数。 解题思路:huffman编码。 #include <stdio.h>#include <string.h>#

uvalive 2949 - Elevator Stopping Plan(贪心+二分)

题目连接:2949 - Elevator Stopping Plan 题目大意:某个抠门的公司只有一个电梯, 现在有n 个人从1楼, 他们有各自想要到达的楼层, 然后电梯每上一楼需要4 秒, 每在一个楼层开门需要10 秒, 然后然爬楼梯的话需要20一楼。问, 如何用最短的时间让所有人都到达各自想要到的楼层。 解题思路:因为人可以爬楼梯, 所以可以在某个楼层下楼之后走楼梯到达想要到的