201709-2 公共钥匙盒 Java

思路:
按上课开始时间排一下序,一个时刻一个时刻判断要不要还钥匙,要不要借钥匙
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();//N把钥匙
int K = sc.nextInt();//K次操作
int key[] = new int[N];
for(int i=0;i<N;i++) {//给钥匙编号
key[i] = i+1;
}
//存储上课信息
int mes[][] = new int[K][3];
//找出最晚结束的课
int max = 0;
for(int i=0;i<K;i++) {
mes[i][0] = sc.nextInt();//钥匙编号
mes[i][1] = sc.nextInt();//上课开始
mes[i][2] = sc.nextInt() + mes[i][1];//下课结束时刻
if(mes[i][2] > max) {
max = mes[i][2];
}
}
//按上课开始时间排序,选择排序
for(int i=0;i<K;i++) {
int min = i;
for(int j=i+1;j<K;j++) {
if(mes[j][1] < mes[i][1]) {
min = j;
}
}
if(min != i) {//把最小的放到排好序的最后
int temp[] = mes[min];
mes[min] = mes[i];
mes[i] = temp;
}
}
//拿钥匙,到最后一节课结束
for(int i=1;i<=max;i++) {
//每一时刻应还钥匙的集合
List<Integer> back = new ArrayList<Integer>();
for(int j=0;j<K;j++) {
if(mes[j][2] == i) {
back.add(mes[j][0]);
}
}
Collections.sort(back);//钥匙从小到大排序
//先全部还完钥匙
for(int j=0;j<back.size();j++) {
for(int k=0;k<N;k++) {
if(key[k] == 0) {
key[k] = back.get(j);
break;
}
}
}
//借钥匙
for(int j=0;j<K;j++) {
if(mes[j][1] == i) {
for(int k=0;k<N;k++) {
if(key[k] == mes[j][0]) {
key[k] = 0;
}
}
}
}
}
sc.close();
//打印
for(int i=0;i<N;i++) {
System.out.print(key[i] + " ");
}
}
}
201709-2 公共钥匙盒 Java的更多相关文章
- CCF|公共钥匙盒|Java
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = ...
- CCF 201709-2公共钥匙盒
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中 ...
- CCF201709-2公共钥匙盒改进版
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中 ...
- csp公共钥匙盒
1.公共钥匙盒 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥 ...
- CCF CSP 201709-2 公共钥匙盒
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-2 公共钥匙盒 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须 ...
- ccf-201709-2 公共钥匙盒
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中 ...
- CCF 2017-09-2 公共钥匙盒
CCF 2017-09-2 公共钥匙盒 题目 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室 ...
- 公共钥匙盒(CCF)【模拟】
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中 ...
- CCF 2017 09-02 公共钥匙盒
CCF 2017 09-02 公共钥匙盒 1.用快速排序函数结合排序规则函数来给取放排序. 2.vector数组的强大功能. #include<iostream> #include< ...
随机推荐
- php phar反序列化任意执行代码
2018年 原理一.关于流包装stream wrapper大多数的文件操作允许使用各种URL协议去访问文件路径,如data://,zlib://,php://例如常见的有include('php:// ...
- C#知识点回顾随笔目录导航
此随笔只是春节期间回顾知识点,阅读<<C#学习笔记>>记录(2019-2-4至2019...); 使用有道云笔记记录可能会有些排版问题 思维导图预览(使用的有道云,无法截取完整 ...
- PHP计划任务
server 2008:D:\SOFT_PHP_PACKAGE\php\php-cgi.exe -f D:\wwwroot\tlbuyuncom\wwwroot\Up_Data.phpPHP路径 -f ...
- NetWork--记一次Http和TLS抓包
参考 前言 工具 wireshark IP 发送方IP: 150.236.224.39 服务IP: 10.210.164.20 消息 Http,Https消息使用org.apache.http.cli ...
- Python的一些常用知识
1.How to force urllib2 not to use a proxy Here is an example to remove proxy settings for all reques ...
- <老古董>线性支持向量机中的硬间隔(hard margin)和软间隔(soft margin)是什么
_________________________________________________________________________________________________ Th ...
- C++ 把数组的元素乘以2在输出
#include<iostream> using namespace std; int main(){ ] = { , , , , }; ; ; i < ; i++) { ) { s ...
- 开发者在行动-政府侧IT需求志愿者招募令(第一弹)
京东云与AI推出了[应急资源信息发布平台],在打通物资供需的同时,各地政府及公益组织可发布疫情信息化产品开发及运维服务的IT需求,如疫情防控统计.物资供需信息收集等IT管理.需求通过评审后平台将帮助发 ...
- 第十篇 Form表单
Form表单 阅读目录(Content) Form介绍 普通的登录 使用form组件 Form那些事儿 常用字段演示 校验 使用Django Form流程 补充进阶 应用Bootstrap样式 批量添 ...
- 通过while循环一步步实现九九乘法表
# 打印#做出@列的效果height = int(input("height: ")) #用户输入一个高度 num_height = heightwhile num_height ...