以下是使用 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点数解答]