P1803 凌乱的yyy / 线段覆盖

  • Post author:
  • Post category:其他


P1803 凌乱的yyy / 线段覆盖

题目背景

快 noip 了,yyy 很紧张!

题目描述

现在各大 oj 上有 nn 个比赛,每个比赛的开始、结束的时间点是知道的。

yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。

所以,他想知道他最多能参加几个比赛。

由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 22 个及以上的比赛。

输入格式

第一行是一个整数 nn ,接下来 nn 行每行是 22 个整数 a_{i},b_{i}ai​,bi​ ( a_{i}<b_{i}ai​<bi​ ),表示比赛开始、结束的时间。

输出格式

一个整数最多参加的比赛数目。

输入输出样例


输入

3
0 2
2 4
1 3


输出

2

解题思路:

按结束时间由小到大排序,优先选择结束时间越早的越好。

#include<iostream>
#include<algorithm>
using namespace std;

struct Com {
	int start;
	int end;
}c[1000100];

int cmp(Com a, Com b)
{
	return a.end < b.end;
}

int main()
{
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> c[i].start >> c[i].end;
	sort(c, c + n, cmp);
	int pre = c[0].end;
	int cnt = 1;
	for (int i = 1; i < n; i++)
	{
		if (c[i].start >= pre)
		{
			cnt++;
			pre = c[i].end;
		}
	}
	cout << cnt << endl;
    return 0;
}



版权声明:本文为lovecyr原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。