#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(const pair<int, int>& a, const pair<int, int>& b) {
return a.second < b.second;
}
int main() {
int n;
cin >> n;
vector<pair<int,int>> act(n);
for(int i = 0 ;i<n;i++){
int t1,t2;
cin>>t1>>t2;
act[i].first = t1;
act[i].second = t2;
}
//按照结束时间进行排序
sort(act.begin(),act.end(),compare);
int count =0;
int lasttime = 0;
for(auto activities:act){
if(activities.first>=lasttime){
count++;
lasttime = activities.second;
}
}
cout << count << endl;
return 0;
}
贪心算法,与主持人(一)的题目比较像,安排n个活动,利用pair收录数据,然后按照结束时间的先后进行全数组排序,排序后遍历,如果当前遍历的数组开始时间晚于上一个的结束时间,那么计数加一,对结束时间进行更新,如果没有,跳过。返回计数结果即可。

京公网安备 11010502036488号