///'首先,我们需要根据活动的结束时间对活动进行排序。然后,我们从第一个活动开始,选择结束时间最早的活动,将其安排在礼堂中。接下来,我们遍历剩下的活动,如果该活动的开始时间晚于当前已安排活动的结束时间,我们就将该活动安排在礼堂中,并更新当前已安排活动的结束时间。最后,返回已安排活动的数量即可。////n//n下面是使用C++实现的代码:////n//ncpp//n#include <iostream>//n#include <algorithm>////n//nusing namespace std;////n//nstruct Activity {//n int begin;//n int end;//n};////n//nbool compare(Activity a, Activity b) {//n return a.end < b.end;//n}////n//nint main() {//n int n;//n cin >> n;////n //n Activity activities[n];//n for (int i = 0; i < n; i++) {//n cin >> activities[i].begin >> activities[i].end;//n }////n //n sort(activities, activities + n, compare);////n //n int count = 1;//n int end = activities[0].end;//n for (int i = 1; i < n; i++) {//n if (activities[i].begin >= end) {//n count++;//n end = activities[i].end;//n }//n }////n //n cout << count << endl;////n //n return 0;//n}//n////n//n输入样例解释://n共有11个活动,分别是:(3, 5), (1, 4), (12, 14), (8, 12), (0, 6), (8, 11), (6, 10), (5, 7), (3, 8), (5, 9), (2, 13)。////n//n按照结束时间排序后的活动顺序为:(1, 4), (5, 7), (3, 5), (5, 9), (3, 8), (6, 10), (8, 11), (12, 14), (2, 13), (0, 6), (8, 12)。////n//n按照贪心算法的原则,我们从第一个活动开始安排,选择(1, 4)。然后,我们遍历剩下的活动,选择满足条件的活动:(5, 7), (8, 11), (12, 14)。最终,共安排了4个活动。///


原文地址: https://www.cveoy.top/t/topic/pQKK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录