区间求交集(贪心)
作者:
巷港
,
2022-04-07 20:56:28
,
所有人可见
,
阅读 198
区间选点
注意和区间合并的区别:区间合并是求并集,区间选点是求交集!
一般的区间贪心:
排个序(左端点或者右端点)再试一下自己的猜想,感觉正确后稍微试着证明一下
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 100010;
typedef pair<int,int>PII;
PII a[N];
int n;
int main()
{
cin>>n;
for (int i=0;i<n;i++)
{
int l,r;
cin>>l>>r;
a[i]={l,r};
}
sort(a,a+n);
int ans=0;
int ed=-2e9;
for (int i=0;i<n;i++)
{
if (ed<a[i].first)
{
ans++;
ed=a[i].second;
}
else
{
ed=min(ed,a[i].second);
}
}
cout<<ans<<endl;
return 0;
}