酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

C++ 实现学校活动拍摄最少出动次数计算,附代码及注意要点

以下是使用 C++ 解决此问题的代码: ```cpp #include <iostream> #include <vector> #include <algorithm> // 活动结构体 struct Activity { int start; int end; }; // 比较函数,用于对活动按结束时间升序排序 bool compareActivities(Activity a, Activity b) { return a.end < b.end; } // 贪心算法获取最少出动次数 int minShots(std::vector<Activity> activities) { int shots = 0; int currentTime = 0; std::sort(activities.begin(), activities.end(), compareActivities); for (const auto& activity : activities) { if (activity.start > currentTime) { shots++; currentTime = activity.end; } } return shots; } int main() { std::vector<Activity> activities = { {10, 20}, {15, 30}, {5, 15} }; int minShotsNeeded = minShots(activities); std::cout << "最少出动次数: " << minShotsNeeded << std::endl; return 0; } ``` 注意点: 1. 输入的活动时间数据要确保准确无误,否则可能导致计算结果错误。 2. 排序函数的正确性对于后续的贪心算法逻辑至关重要。 3. 考虑边界情况,如没有活动或只有一个活动的情况。 ######[AI写代码神器 | 350点数解答 | 2024-12-20 19:58:49]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]