P1803 凌乱的yyy / 线段覆盖
P1803 凌乱的yyy / 线段覆盖 - 洛谷
思路:简单贪心排序结束时间,因为我们要多参加比赛
代码:
#include<bits/stdc++.h>
using namespace std;using PII = pair<int, int>;int main() {int n;cin >> n;vector<PII> activities(n); // 存储所有活动(0-based索引)for (int i = 0; i < n; ++i) {cin >> activities[i].first >> activities[i].second;}// 关键:按「结束时间」升序排序(贪心策略的核心)sort(activities.begin(), activities.end(), [](const PII& x, const PII& y) {return x.second < y.second;});int ans = 0;int last_end = -1; // 记录「最后一个选中活动的结束时间」,初始为-1(确保第一个活动能被选)for (const auto& act : activities) {// 若当前活动的「开始时间」>= 最后一个活动的「结束时间」,则不冲突,可选中if (act.first >= last_end) {ans++;last_end = act.second; // 更新最后结束时间为当前活动的结束时间}}cout << ans << endl;return 0;
}