QAQ
区间覆盖问题之最大不相交覆盖问题
这个问题可以用DP解决,也可以用贪心解决。
这里给出贪心做法。
把终点升序排列,模拟判断即可。
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
struct node{
int s,t;
}a[1100000];
bool comp(node x,node y)
{
if(x.t==y.t) return x.s<y.s;
return x.t<y.t;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d%d",&a[i].s,&a[i].t);
sort(a+1,a+n+1,comp);
int end=-1;
int ans=0;
for(int i=1;i<=n;i++)
if(a[i].s>=end)
{
ans++;
end=a[i].t;
}
printf("%d",ans);
}