P1803 凌乱的yyy / 线段覆盖
P1803 凌乱的yyy / 线段覆盖
题目
现在各大 oj 上有
yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。
所以,他想知道他最多能参加几个比赛。
由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加
输入
第一行是一个整数
输出
一个整数最多参加的比赛数目。
样例
输入
3
0 2
2 4
1 3
输出
2
提示
- 对于
的数据, ; - 对于
的数据, ; - 对于
的数据, ; - 对于
的数据, , 。
思路
该问题属于“选择不相交的区间问题”。通过分析可以得到,区间越早终止,越对后面的区间“有利”,因此,按右端点大小排序。
容易分析出,最早结束的区间一定要选择,图中
代码
#include <bits/stdc++.h>
using namespace std;
int n, pre, cnt, ed;
struct node
{
int s, e;
} p[1000010];
bool cmp(const node &u, const node &v)
{
if (u.e < v.e)
return 1;
else if (u.e == v.e)
{
if (u.s < v.s)
return 1;
else
return 0;
}
return 0;
}
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i ++ )
scanf("%d %d", &p[i].s, &p[i].e);
sort(p + 1, p + n + 1, cmp);
ed = p[1].e;
for (int i = 2; i <= n; i ++ )
{
if (p[i].s >= ed)
{
ed = p[i].e;
cnt ++;
}
}
cout << cnt + 1 << '\n';
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】