P1803 凌乱的yyy / 线段覆盖 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
考点:线段覆盖
思路:将整体结束时间进行排序,在从头开始遍历计数
代码:
#include<iostream>
#include <algorithm>
using namespace std;
class Game{
public:
void Print() {
printf("%d %d\n", start, end);
}
int start,end;
}G[1000005];
bool cmp(Game a, Game b)
{
return a.end < b.end;//小在前
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> G[i].start >> G[i].end;
}
sort(G, G + n, cmp);
int pos = 0, ans = 0;
for (int i = 0; i < n; i++)
{
if (pos <= G[i].start)
{
pos = G[i].end;
ans++;
}
}
cout << ans;
return 0;
}
总结
一开始想先比较持续时间,再比较开始时间,想复杂了,代码写不出来