PAT甲级【1014 Waiting in Line】
- 考察双向链表
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.LinkedList; public class Main {
@SuppressWarnings("uncheck")
public static void main(String[] args) throws IOException {
StreamTokenizer st = new StreamTokenizer(new InputStreamReader(System.in));
int n, m, k, q;
st.nextToken();
n = (int) st.nval;
st.nextToken();
m = (int) st.nval;
st.nextToken();
k = (int) st.nval;
st.nextToken();
q = (int) st.nval; LinkedList<int[]>[] queue = new LinkedList[n];
for (int i = 0; i < n; i++) {
queue[i] = new LinkedList<>();
}
int[][] time = new int[k + 1][2];
int[] cost = new int[k];
for (int i = 0; i < k; i++) {
st.nextToken();
int v = (int) st.nval;
cost[i] = v;
if (i < m * n) {
if (queue[i % n].isEmpty()) {
queue[i % n].add(new int[]{i, 0, v});
time[i + 1] = new int[]{0, v};
continue;
}
int[] last = queue[i % n].getLast();
int finishedtime = last[2];
queue[i % n].add(new int[]{i, finishedtime, finishedtime + v});
time[i + 1] = new int[]{finishedtime, finishedtime + v};
} else {
int min = 1000_000_00;
int minindex = -1;
for (int j = 0; j < n; j++) {
int[] first = queue[j].peekFirst();
if (min > first[2]) {
min = first[2];
minindex = j;
}
}
int[] last = queue[minindex].getLast();
int finishedtime = last[2]; queue[minindex].pollFirst();
queue[minindex].add(new int[]{i, finishedtime, finishedtime + v}); time[i + 1] = new int[]{finishedtime, finishedtime + v};
}
} int max = 540;
for (int i = 1; i <= q; i++) {
st.nextToken();
int index = (int) st.nval;
if (time[index][0] < max) {
System.out.println(format(time[index][1]));
} else {
System.out.println("Sorry");
}
}
} public static String format(int time) {
int x = time / 60 + 8;
int y = time % 60; StringBuilder sb = new StringBuilder();
if (x < 10) {
sb.append("0").append(x);
} else {
sb.append(x);
}
sb.append(":");
if (y < 10) {
sb.append("0").append(y);
} else {
sb.append(y);
}
return sb.toString();
}
}
PAT甲级【1014 Waiting in Line】的更多相关文章
- PAT甲级1014. Waiting in Line
PAT甲级1014. Waiting in Line 题意: 假设银行有N个窗口可以开放服务.窗前有一条黄线,将等候区分为两部分.客户要排队的规则是: 每个窗口前面的黄线内的空间足以包含与M个客户的一 ...
- PAT 甲级 1014 Waiting in Line (30 分)(queue的使用,模拟题,有个大坑)
1014 Waiting in Line (30 分) Suppose a bank has N windows open for service. There is a yellow line ...
- PAT A 1014. Waiting in Line (30)【队列模拟】
题目:https://www.patest.cn/contests/pat-a-practise/1014 思路: 直接模拟类的题. 线内的各个窗口各为一个队,线外的为一个,按时间模拟出队.入队. 注 ...
- PAT甲级——A1014 Waiting in Line
Suppose a bank has N windows open for service. There is a yellow line in front of the windows which ...
- PAT 1014 Waiting in Line (模拟)
1014. Waiting in Line (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Suppo ...
- 1014 Waiting in Line (30分)
1014 Waiting in Line (30分) Suppose a bank has N windows open for service. There is a yellow line i ...
- PTA (Advanced Level) 1014 Waiting in Line
Waiting in Line Suppose a bank has N windows open for service. There is a yellow line in front of th ...
- 【PAT甲级】1014 Waiting in Line (30 分)(队列维护)
题面: 输入四个正整数N,M,K,Q(N<=20,M<=10,K,Q<=1000),N为银行窗口数量,M为黄线内最大人数,K为需要服务的人数,Q为查询次数.输入K个正整数,分别代表每 ...
- PAT 1014. Waiting in Line
Suppose a bank has N windows open for service. There is a yellow line in front of the windows which ...
- PAT 1014 Waiting in Line (模拟)
Suppose a bank has N windows open for service. There is a yellow line in front of the windows which ...
随机推荐
- .NET Core开发实战(第33课:集成事件:使用RabbitMQ来实现EventBus)--学习笔记(上)
33 | 集成事件:使用RabbitMQ来实现EventBus 这一节我们来讲解如何通过 CAP 组件和 RabbitMQ 来实现 EventBus 要实现 EventBus,我们这里借助了 Rabb ...
- CentOS7.6离线升级docker20
本周研发反馈系统升级失败,是因为docker版本太低,需要升级docker20.由于安装系统的服务器没有联网,所以无法在线升级.所以我找了一台联网的CentOS7.6的服务器,下载了docker20和 ...
- Python内置小工具(非常实用!)
一.1秒钟启动一个下载服务器在工作中时不时会有这样的一个需求:将服务器(或者自己电脑)上的文件传给其他同事.将文件传给同事本身并不是一个很繁琐的工作,现在的聊天工具一般都支持文件传输.但是,如果需要传 ...
- python实现百度贴吧页面爬取
import requests class TiebaSpider: """百度贴吧爬虫类""" def __init__(self, ti ...
- 跨界协作:借助gRPC实现Python数据分析能力的共享
gRPC是一个高性能.开源.通用的远程过程调用(RPC)框架,由Google推出.它基于HTTP/2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言. 在gR ...
- Java设计模式-职责链模式Chain of Responsibility
介绍 职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图).这种模式对请求的发送者和接收者进行解耦. 职责链模 ...
- Qt5.15.0 升级至 Qt5.15.9 遇到的一些错误
按照之前我写的文章教程,可以很简单的编译出静态库(仅供学习交流) 编译 windows 上的 qt 静态库 编译出静态库后,替换旧版本的库,见我另一篇文章教程 VS2019 配置 QT 库 之所以没有 ...
- 本地配置静态ip和dns及虚拟机
- 简化Simulink的建模与模型重构
简化Simulink的建模与模型重构 模型重构 Simulink作为汽车和自动化领域中经典的模型工程必备工具,不管是专业的汽车控制器的开发还是自动化控制的专业应用编程,都会使用到Simulink进行图 ...
- 【Azure API 管理】APIM Self-Host Gateway 自建本地环境中的网关数量超过10个且它们的出口IP为同一个时出现的429错误
问题描述 Azure API Management服务支持使用自建网关来实现API服务,这样APIM的所有请求都可以走在自管理的企业内网中.流量都更加安全.当根据官网文档搭建后,如果在本地环境中部署超 ...