C++题目描述春节快要到了耶斯莫拉大酒店在最近几天要举办n个活动这些活动都需要使用酒店的大礼堂而在同一时间礼堂只能被一个活动使用。由于有些活动时间上有冲突酒店管理人员只好让一些活动放弃使用礼堂而使用其他小的餐厅。现在给出n个活动使用礼堂的起始时间begini和结束时间endibegini endi=32767请你帮助酒店管理人员安排一些活动来使用礼堂要求安排的活动尽量多。假设没有重新布置礼堂时间
解题思路:
- 将所有活动按照结束时间从小到大排序。
- 选择第一个活动,将其结束时间记录为当前最早可安排的活动结束时间。
- 遍历剩下的活动,如果活动的开始时间晚于当前最早可安排的活动结束时间,则选择该活动,并更新当前最早可安排的活动结束时间为该活动的结束时间。
- 继续遍历下一个活动,直到遍历完所有活动。
- 输出选择的活动个数。
实现步骤:
- 定义一个结构体Activity,包含活动的开始时间和结束时间。
- 定义一个比较函数,用于排序活动。
- 将所有活动存储在一个vector中。
- 对vector进行排序。
- 定义一个变量count,用于记录选择的活动个数。
- 定义一个变量endTime,用于记录当前最早可安排的活动结束时间,初始值为0。
- 遍历vector,如果活动的开始时间晚于endTime,则选择该活动,并更新endTime为该活动的结束时间,count加1。
- 输出count作为结果。
原文地址: https://www.cveoy.top/t/topic/h8Fk 著作权归作者所有。请勿转载和采集!