欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
S40305.3-5 抢占时隙
3-5 抢占时隙
抢占时隙
G-14数据枢纽的资源调度区是一排圆柱形的数据舱,每个舱外都有时间表在滚动。Echo说Zero把这些舱分成多个时段出租——每个时段有开始时间和结束时间,同一个舱里不能有两个重叠的时段。
"我们要预订舱位,上传我的碎片数据。"Echo飘到第一个数据舱前,"但每个碎片上传需要一个连续的时段。而且不同的碎片需要不同的时长——有的要两小时,有的要半小时。"
"那就挑结束最早的先订。"CC说,"结束得早,后面才留得多。"
"对,但还有一个问题。"你说,"Zero有多少个数据舱?如果只有一个舱,那确实按结束时间挑就行。但如果有多个舱,就要把每个时段分配给不同的舱——同一个舱里的时段不能重叠。"
CC皱眉:"咋个知道要几个舱?"
"排队。"你说,"把所有时段按开始时间排好。每次来一个时段,看看有没有哪个舱已经空出来了——如果最早结束的时段已经走人了,就腾出来给新来的;如果都还没结束,就新开一个舱。"
你在终端上开始写。先把所有时段按开始时间排好,然后盯紧每个舱的结束时间。新时段来了,如果最早结束的舱已经空出来了,就让新人住进去;否则,新开一个舱。
屏幕上跳出了结果:五个时段,只需要两个舱。
"成了。"你说。
CC把五个碎片的数据晶片依次塞进数据舱。舱门关闭,内部传来数据上传的嗡鸣声——像是一群蜜蜂在金属壳里筑巢。
Echo站在舱门前,投影被舱内的蓝光染成了淡青色:"上传完成后,这些碎片会合并成我的……一部分记忆。"
"哪部分?"你问。
"关于选择的。"她说,"关于为什么离开Zero。"
CC靠在舱壁上,金属肩膀和数据舱的外壳碰在一起,发出轻微的撞击声:"我也想知道。"
题目描述
个任务,每个有开始时间和结束时间。用尽可能少的资源(机器/舱位)完成所有任务,同一资源上的任务不能重叠。
输入格式
。然后 行,每行开始时间和结束时间。
输出格式
最少资源数。
输入样例
5
1 10
2 4
3 6
5 8
4 7
输出样例
4
1
2
3
2
4
提示
- 按开始时间排序。
- 用最小堆维护每个资源的最后一个任务的结束时间。
- 新任务开始时间大于等于堆顶,则复用该资源;否则新开资源。
五个碎片上传完毕,数据舱的指示灯从蓝变绿。Echo的投影比之前凝实了许多,连边缘的像素裂隙都少了。
"前面还有一道门。"她说,"由一串节点控制。每个节点有两个属性——影响力和防御力。排列的顺序决定了门能不能开。"
"怎么排?"CC问。
"看谁该站前面。"你说,"如果两个相邻节点换位置能让整体更顺畅,就换。一直换到没有遗憾为止。"
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |