算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
// 区间选点先按照右端点排序,然后如果出现一条区间右端点大于上一个区间的右端点,在该区间的右端点取一个点
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e5 + 10;
int n;
struct Range
{
int l, r;
bool operator< (const Range& W)const
{
return r < W.r;
}
}range[N];
int main()
{
scanf("%d", &n);
for (int i = 0; i < n; i ++ ) scanf("%d%d", &range[i].l, &range[i].r);
sort(range, range + n);
int res = 0, ed = -0x3f3f3f3f;
for (int i = 0; i < n; i ++ )
{
if (range[i].l > ed)
{
ed = range[i].r;
res ++ ;
}
}
printf("%d\n", res);
return 0;
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla