酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

c++ 学校将在一天内举办 n 个活动,已知每个活动开始时间和结束时间(精确到分钟的闭区间)。皮皮所在的校电视台的同学们负责给这些活动拍摄照片,每个活动都至少需要拍摄一次,由于校电视台的同学们需要尽量多的聚集开会,因此拍照最好大家在某一时间点一起出动,同时拍摄尽可能多的活动,已知拍摄人数和设备足够覆盖所有活动,且忽略拍摄花费的时间。大家决定提前规划好,出动尽量少的次数,完成拍摄。 测试数据如下: 5 15:42 16:38 12:08 20:18 14:16 17:16 14:17 17:53 18:48 19:48,语言方向:C++

以下是使用 C++ 解决此问题的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> struct Activity { std::string start; std::string end; }; bool compareActivities(Activity a, Activity b) { // 先比较结束时间,如果结束时间相同再比较开始时间 if (a.end!= b.end) { return a.end < b.end; } return a.start < b.start; } int main() { int n = 5; std::vector<Activity> activities = { {"15:42", "16:38"}, {"12:08", "20:18"}, {"14:16", "17:16"}, {"14:17", "17:53"}, {"18:48", "19:48"} }; // 按照结束时间升序排序 std::sort(activities.begin(), activities.end(), compareActivities); int count = 0; std::string currentEnd = "00:00"; for (const auto& activity : activities) { if (activity.start >= currentEnd) { count++; currentEnd = activity.end; } } std::cout << "最少出动次数: " << count << std::endl; return 0; } ``` 注意: 1. 对于时间的处理可能需要更复杂的逻辑,这里只是简单比较字符串。 2. 输入的时间格式需要保持一致,避免出现异常。 3. 考虑添加错误处理代码,以应对可能的输入错误。 [2025-01-04 13:49:41 | AI写代码神器 | 396点数解答]

相关提问