【CCF】公共钥匙盒
试题编号: | 201709-2 |
试题名称: | 公共钥匙盒 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。 输入格式 输入的第一行包含两个整数N, K。 输出格式 输出一行,包含N个整数,相邻整数间用一个空格分隔,依次表示每个挂钩上挂的钥匙编号。 样例输入 5 2 样例输出 1 4 3 2 5 样例说明 第一位老师从时刻3开始使用4号教室的钥匙,使用3单位时间,所以在时刻6还钥匙。第二位老师从时刻2开始使用钥匙,使用7单位时间,所以在时刻9还钥匙。 样例输入 5 7 样例输出 1 2 3 5 4 评测用例规模与约定 对于30%的评测用例,1 ≤ N, K ≤ 10, 1 ≤ w ≤ N, 1 ≤ s, c ≤ 30; |
解题思路:
先定义一个教师结构体Teacher配合vector一起使用,里面有钥匙编号、使用钥匙的时间、标识符(0借1还),再创建一个钥匙列表key。vector先按还钥匙的时间升序排列,若还取钥匙的时间相同,则按先借后还排列,若多位老师还钥匙,则按钥匙编号升序排列。排序好以后,用for-each循环对vector进行遍历进行借还钥匙操作即可。最后对钥匙列表进行输出即可。
100分代码:
#include <bits/stdc++.h>
using namespace std;struct Teacher
{int key; //钥匙编号int time; //使用钥匙的时间int flag; //设置标识符,0借,1还
};bool Cmp(Teacher a,Teacher b)
{if(a.time != b.time){return a.time < b.time; //先按还取钥匙的时间升序排序}else if(a.flag != b.flag){return a.flag > b.flag;}else //若多位老师还钥匙{return a.key < b.key; //则按钥匙编号升序排列}
}int main()
{ios::sync_with_stdio(false); //取消cin和stdin的同步int N,K;int key[1001]; //钥匙列表cin >> N >> K;vector<Teacher> v;for (int i = 1; i <= N; i++){key[i] = i; //对钥匙进行赋初值}for (int i = 0; i < K; ++i){int w,s,c; //老师要使用的钥匙编号w、开始上课的时间s和上课的时长ccin >> w >> s >> c;v.push_back({w,s,0}); //借v.push_back({w,s+c,1}); //还}sort(v.begin(),v.end(),Cmp); for(auto it:v) {if(it.flag == 0) //借钥匙{for (int i = 1; i <= N; i++){if(key[i] == it.key){key[i] = 0; //钥匙被借走了break;}}}else //还钥匙{for (int i = 1; i <= N; i++){if(key[i] == 0){key[i] = it.key; //把钥匙归还break;}}}}for (int i = 1; i <= N; i++){cout << key[i] << " ";}return 0;
}
【CCF】公共钥匙盒相关推荐
- ccf公共钥匙盒python_CCF python 201709-2 公共钥匙盒
基本思路: 将所有的时间节点(借钥匙时间,还钥匙时间)组织到一个列表里[钥匙号,时间,借or还] 并将之按时间的升序.还优先借.钥匙号的升序排列 那么所要做的就是遍历这个列表: ····如果是借就 · ...
- csp ccf公共钥匙盒
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中 ...
- ccf公共钥匙盒python_CCF/CSP 公共钥匙盒
无情的copy机器... [解题思路]:排序+模拟 [代码如下]: import java.util.*; public class Main { public static void main(St ...
- python认证考试_Python入门习题(39)——CCF CSP认证考试真题:公共钥匙盒
CCF CSP认证考试真题:共钥匙盒 问题描述 试题编号:201709-2 试题名称:公共钥匙盒 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个学校的老师共用N个教室,按照规定,所有的 ...
- CSP CCF 201709-2 公共钥匙盒(C++)满分代码,有注释
问题描述 试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共 ...
- 公共钥匙盒(排序CCF)
问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中 ...
- 【CCF】201709-2公共钥匙盒
试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带 ...
- CCF CSP 公共钥匙盒 JAVA 201709-2 100分
这道题做了几遍 感觉这次做得比较好的就是做好了每个函数的封装 无非使用了二维数组的排序 就变成了很简单的一道题 package csp2017_09_2;import java.util.Array ...
- CCF CSP 公共钥匙盒
问题描述 试题编号: 201709-2 试题名称: 公共钥匙盒 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共 ...
- CCF计算机认证考试201709-2:公共钥匙盒 非算法弱鸡版
公共钥匙盒 题目: 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回 ...
最新文章
- 刷题 - 基础数学/数论问题
- To-do List
- annotations' in project ':test'. Resolved versions for app (26.1.0) and test app (27.1.1) differ
- java int 和 long比较大小会_解析java的addExact()与multiplyExact()
- 事务处理与SQL查询
- Python面试必须要了解的15个问题
- java供应链项目详解_基于jsp的企业供应链管理系统-JavaEE实现企业供应链管理系统 - java项目源码...
- 为什么人工智能难以达到儿童语言水平?
- sentencePiece入门小结
- 小程序Dialog弹出窗
- 以桨为楫 修己度人(一)
- 7-3 求100以内的素数
- 穿越派·派盘 + Solid Explorer = 全能 Android 文件管理器
- Java SimpleDateFormat用法
- Solid Sphere Inc.:智能手机原创恶搞App“Takeshobo Quest - POP TEAM EPIC ASSAULTS”
- C/C++文件输入输出(详细介绍)
- scratch鲜为人知的技巧-初级篇
- 斯坦福机器学习笔记(三)—— 高斯判别分析
- 外企文化大比较 德企、日企里的人情真相
- 四、Ansible文件模块库与模板
热门文章
- 半导体无尘车间测试尘埃粒子浓度等级设备
- 一个屌丝程序猿的人生(一百二十三)
- Nginx无法启动 遇见unknown directive if(!-f in E:\xiangmu\nginx-1.14.0/conf/nginx.conf:28
- 手机耗电统计app_Android O 新特性:精确统计 APP 电量消耗
- 你刚才微信上撤回了什么?我都看到了
- Python爬虫笔记——解析json数据(以周杰伦歌单为例)及Headers
- C语言温度转换窗体,C语言1_1:温度转换
- 服务器配置防火墙的地址伪装和端口转发实例
- matlab watershed函数简单实现_薛定宇教授大讲堂(卷):MATLAB程序设计|文末赠书...
- 超全面总结!深聊MATERIAL DESIGN引领的设计趋势