这道题有点像优先队列的思想,简而言之就是挑选最小的入队处理,如果有多个队列就进行多个队列的处理;

借鉴的思想是采用记录每个队列中的任务完成时间,然后在读入任务的时候进行轮询,选择结束时间最小的那个队列,然后进行处理和等待时间的计算;

代码如下:


#include <iostream>
#include<stdlib.h>
#include<stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
struct node {int come, time;
} tempcustomer;
bool cmp1(node a, node b) {return a.come < b.come;
}
int main() {int n, k;scanf("%d%d", &n, &k);vector<node> custom;for(int i = 0; i < n; i++) {int hh, mm, ss, time;scanf("%d:%d:%d %d", &hh, &mm, &ss, &time);int cometime = hh * 3600 + mm * 60 + ss;if(cometime > 61200) continue;tempcustomer = {cometime, time * 60};custom.push_back(tempcustomer);}sort(custom.begin(), custom.end(), cmp1);vector<int> window(k, 28800);double result = 0.0;for(int i = 0; i < custom.size(); i++) {int tempindex = 0, minfinish = window[0];for(int j = 1; j < k; j++) {if(minfinish > window[j]) {minfinish = window[j];tempindex = j;}}if(window[tempindex] <= custom[i].come) {window[tempindex] = custom[i].come + custom[i].time;} else {result += (window[tempindex] - custom[i].come);window[tempindex] += custom[i].time;}}if(custom.size() == 0)printf("0.0");elseprintf("%.1f", result / 60.0 / custom.size());system("pause");return 0;
}

PAT A1017 优先队列相关推荐

  1. PAT甲级1125 Chain the Ropes:[C++题解]贪心、优先队列、合并果子

    文章目录 题目分析 题目来源 题目分析 来源:acwing 板子题:合并果子合并果子优先队列 分析:贪心策略是: 每次取最短的两条绳子a和b.该两条绳子合并为1条绳子,且长度变为a+b2\frac{a ...

  2. 【PAT - 甲级1017】Queueing at Bank (25分)(优先队列,模拟)

    题干: Suppose a bank has K windows open for service. There is a yellow line in front of the windows wh ...

  3. UVALive 6093 Emergency Room --优先队列实现的模拟

    题意:给n个医生,这些医生有一个上班时间,然后给一些病人,病人有一个到达的时间,以及一些诊断,诊断有property(优先级)和duration(诊断时间)这两个属性,每个病人可能要诊断多次,最后问每 ...

  4. pat德才论(java)

    刷pat时候发现德才论这个题目真有点烦.用到的知识点比较重要.题目链接 题意: 链接:https://www.nowcoder.com/questionTerminal/97b6a49a8594465 ...

  5. PAT甲级题目翻译+答案 AcWing(字符串处理)

    1001 A+B Format (20 分) 题意 :将整数转换成标准格式 思路 :从后往前遍历字符串进行模拟,每三个数字加一个逗号,但不能是在最前面加逗号,也不能是加在负号后面 #include & ...

  6. hdu 1818 It's not a Bug, It's a Feature!(位运算+bfs优先队列)

    题意:给一个长度为n的bug,和m个补丁,然后是m个补丁的描述.第一个数字是这个补丁消耗的时间. 第1个字符串是这个补丁要工作需要满足的条件,第2个字符串是这个补丁的作用 详细一点说, 对于第一个字符 ...

  7. 助力PAT甲级/乙级取得满分的小技巧,STL容器

    STL容器的高级玩法 写在前面:本人于2020PAT甲级取得满分(见本人其他博客),在刷题过程中我有了很多自己的小经验和技巧,在这里分享给大家,祝大家刷题顺利,早日拿到免费的PAT徽章~~ 注意:这里 ...

  8. 天梯赛/PAT甲级常考知识点整理

    当输入数据 >= 10^5 时,用 scanf,printf 注意边界情况特判!!!!比如为空之类的! 向上取整:(n + m - 1) / m; bfs()搜索时,在加入队列时,就需要标记已经 ...

  9. 【PAT甲级】A1001-A1050刷题记录

    文章目录 A1001 A+B Format (20 分) 0.25 ★(一元多项式加法) A1002 A+B for Polynomials (25 分) 0.21 (单源最短路Dijkstra+边权 ...

最新文章

  1. R语言grafify包简单、快速绘制19个漂亮的统计图实战
  2. 言论丨十问陆奇:百度如何才能赢得AI的未来?
  3. mysql命令行的光标不显示和git-bash不能直接使用mysql登录的问题
  4. ue4加速度_ue4粒子实现流血效果
  5. 小型电梯尺寸_简易式家用电梯-潞城=小型阁楼家用电梯
  6. GET_ROLE_BASED_PAGE_USAGES
  7. python 定时任务 Apscheduler
  8. c++实现rsa算法_RSA简介
  9. 【clickhouse】MergeTree storage require data path INCOORRECT_FILE_NAME
  10. oracle用分号拼接函数,ORACLE以逗号分隔连接列的值   函数名:wmsys.wm_concat
  11. java ByteBuffer flip()和limit()的理解
  12. 二本天坑,一战成硕,上岸北邮
  13. 一条来自水圈的鄙视链
  14. 创建springboot项目后运行,找不到或无法加载主类 com.itheima.Application,原因: java.lang.ClassNotFoundException
  15. Windows组策略禁止广告弹窗
  16. 基于RSA的公钥基础体系下安全通信实战
  17. 网上得到的一个3D渲染引擎
  18. html语音合成text2audio讯飞,python讯飞语音合成
  19. 和诸君学习做一个黑客 内网ARP欺骗[上]外接网卡的安装和启动(3)
  20. 液压缸移动负载分析(液压系统基础)

热门文章

  1. 2、Ktor学习-自动重新加载;
  2. 成都铁路警方联合多部门开展反恐防暴演练
  3. 如何给localStorage设置一个过期时间?
  4. nginx中301和302重定向之间的区别
  5. 鸟哥的linux私房菜-文件压缩于打包-2
  6. x86CPU 实模式 保护模式 傻傻分不清楚? 基于Xv6-OS 分析CR0 寄存器
  7. Rafy 框架 - 大批量导入实体
  8. 虚拟机软件之vmware workstation安装篇
  9. 用dw中html设置背景,Dreamweaver 教程-CSS背景属性(background)
  10. altium designer PCB 屏蔽DRC报错