洛谷P1803—凌亂的yyy / 線段覆蓋【區間貪心】

洛谷P1803
在這裏插入圖片描述
輸出:

輸入:
3
0 2
2 4
1 3
輸出:
2

思路:題意可以轉化爲找儘量多的不重複區間。
AC代碼:

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+5;
struct Node
{
	int l,r;
}a[maxn];
bool cmp(const Node &a,const Node &b)
{
	if(a.r==b.r)//結束時間相同,按開始時間升序排序
		return a.l<b.l;
	return a.r<b.r;//按結束時間升序排序
}
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i].l>>a[i].r;
	sort(a+1,a+n+1,cmp);//按結束時間升序排序
	int cnt=1;//第一場比賽最早結束,必選
	int now=1;//當前比賽爲第一場比賽
	for(int i=2;i<=n;i++)
		if(a[i].l>=a[now].r)//某場比賽開始時間大於等於當前比賽結束時間
		{
			now=i;//更新
			cnt++;//又能多參加一場了
		}
	cout<<cnt<<endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章