文章目录

  • 题目解答
  • 题目链接

题目解答



来源:acwing

分析:
采用结构体来存每个操作,保存啥呢?三个成员钥匙id操作的类型:1表示还钥匙,0表示取钥匙;操作的时间tm; 然后结构体内部排序,先按照操作时间从小到大排序,操作时间相同的情况下,还钥匙优先,然后还是相同的话,按照钥匙id从小到大排序。直接在结构体内部重载小于号可以实现。

然后就是排序。接着就是遍历处理即可。

ac代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
int n,m;
int q[N];
bool st[N];
struct Op{int tm, type, id;bool operator<(const Op& t)const{if(tm != t.tm) return tm < t.tm;// 1表示还钥匙,0表示取钥匙if(type != t.type) return type > t.type;return id < t.id;}
}op[N * 2];int main(){cin >> n >> m; int k = 0;while(m--){int id, start, remain;cin >> id >> start >> remain;op[k ++] = {start, 0, id}; // 0表示取钥匙op[k ++] = {start + remain, 1, id}; //1表示还钥匙}sort(op, op + k);for(int i = 1; i <= n; i ++) q[i] = i;for(int i = 0; i < k; i ++){int id = op[i].id; // 钥匙的idif(!op[i].type){ // 取钥匙for(int j = 1; j <= n; j ++){if(q[j] == id){q[j] = 0;break;}}}else{ // 还钥匙for(int j = 1; j <= n; j ++)if(!q[j]){q[j] = id;break;}}}for(int i = 1; i <= n; i++) cout << q[i] <<" ";}

题目链接

https://www.acwing.com/problem/content/3251/

CSP认证201709-2 公共钥匙盒[C++题解]:结构体、排序、枚举相关推荐

  1. 公共钥匙盒(C++结构体)

    公共钥匙盒(C++结构体) [问题描述] 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门, ...

  2. csp试题2:公共钥匙盒

    csp试题2:公共钥匙盒 题目 分析 代码 总结 题目 问题描述       有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙 ...

  3. PAT甲级1141 PAT Ranking of Institutions :[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:和下面这题是一道题: PAT甲级1137 Final Grading:[C++题解]结构体.排序.哈希表.结构体构造函数.结构体内写函 ...

  4. Monkey and Banana HDU - 1069 [ 结构体排序+DP最长不上升子序列 ] 详细题解

    题解目录 1.题目 2.题意 3.思路 4.代码 1.题目 A group of researchers are designing an experiment to test the IQ of a ...

  5. CSP认证201803-2 碰撞的小球[C++题解]:模拟

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 题目理解: 给定水平方向的线段和n个小球,给定速度和碰撞后反向运动等条件,模拟小球碰撞过程,求解最后时刻所有小球的位置. 题目解答: ...

  6. CSP认证201809-4 再卖菜[C++题解]:差分约束、前缀和

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 对于a0,a1,...,ana_0, a_1,...,a_na0​,a1​,...,an​,经过计算相邻的数的平均值得到b0,b1, ...

  7. CSP认证201712-1 最小差值[C++题解]:遍历

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析: 直接排序,然后取相邻两数之差的最小值. ac代码 #include<bits/stdc++.h> using names ...

  8. CSP认证201512-2 消除类游戏[C++题解]:模拟

    题目分析 来源:acwing 分析: 本题类似消消乐,同一行或者同一列满足3个或者更多个同色的可以消除(数值置为0),由于数据量比较小,时间复杂度可以到O(n3)O(n^3)O(n3). 这里是对每个 ...

  9. CSP认证201509-3 模板生成系统[C++题解]:字符串处理、模拟、哈希表、引号里面有空格的字符串怎么读入

    题目分析 来源:acwing 分析: 本题采用vector< string > 来读入原来模板.接下来的m行需要用到哈希表,进行模板和具体内容的映射. 遍历vector,如果找到{{,就对 ...

最新文章

  1. Noip2012同余方程
  2. Mac搭建本地svn服务器,并用Cornerstone连接服务器
  3. ckks方案优化最好的_网站优化关键词怎么选?好的关键词长什么样?
  4. Scala语言编译之后生成的Java代码解读
  5. 将社交登录添加到Spring MVC Web应用程序:配置
  6. JavaFX布局中图片在表格中无法被自适应缩小?
  7. zblog php 安装,zblog教程:Z-BlogPHP如何安装
  8. 南京计算机审计行业工资,南京最新各行业平均工资曝光!看完分分钟想跳槽!...
  9. PHP5.5+Nginx1.9
  10. channel9.msdn.com 微软虚拟学院MVA系列视频课程
  11. JavaSE基础_java简介和环境搭建_2
  12. 是的,解禁了,是胜利还是嘲讽?
  13. Adobe Acrobat Reader离线安装包下载
  14. CCAI2018 | 韩家炜:大规模文本数据挖掘的新方向
  15. verilog逻辑符
  16. Google浏览器清除缓存快捷键
  17. 白云市场高仿包值不值得买?
  18. Ubuntu安装Google拼音
  19. 【JS】用JS发送电子邮件
  20. 2012年上半年信息系统项目管理师 上午试题和参考答案及解析

热门文章

  1. 用反向传导模拟共振并用共振频率作分类
  2. htmlcss实例小项目_HTMLCSS学习笔记(十九)-- 媒体查询
  3. 南京晓庄学院大一第二学期计算机数据结构期末考试试卷及答案,南京晓庄学院数据结构题库参考标准答案...
  4. 文档上传下载 php开源,PHP文件的上传下载 - PHP开发学习门户的个人空间 - OSCHINA - 中文开源技术交流社区...
  5. 【数理知识】神仙文章(回忆大学所学)常微分方程
  6. 第十六章 推荐系统-机器学习老师板书-斯坦福吴恩达教授
  7. 根据UE发送前导码时是否存在碰撞
  8. 【AI2】更新app inventor2离线开发环境AppInventor2021,安卓app图形化开发环境
  9. 局域网内其他电脑通过SSH访问NAT模式下的虚拟机
  10. if/ else 你真的会吗?