贪心算法——洛谷(P1803)
这道题目官方说的是 线段覆盖 的问题,我觉得还是和区间调度一样
采取结构体存放比赛开始和结束时间,用sort排序,自定义cmp,
将结束时间从小到大排序,然后依次选择符合的,即为最终答案
此题为典型的贪心题
思路;以线段右端点(即终点)为依据贪心,先排序,之后
情况:如果下一线段的起点>now,可留下的线段总数++;如果下一线段的起点<=now,则更新now为下一线段的终点,小于等于时再分情况
如果下一线段全部被包含在前一线段中,将now更新为下一线段终点(now越小越好(因为贪心)),如果下一线段与之前部分重叠,则舍弃此线段不更新now
题目背景
快 noip 了,yyy 很紧张!
题目描述
现在各大 oj 上有 n 个比赛,每个比赛的开始、结束的时间点是知道的。
yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。
所以,他想知道他最多能参加几个比赛。
由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加 2 个及以上的比赛。
输入格式
第一行是一个整数 n ,接下来 n 行每行是 22 个整数 ( ai<bi ),表示比赛开始、结束的时间。
输出格式
一个整数最多参加的比赛数目。
输入输出样例
输入 #1
3 0 2 2 4 1 3
输出 #1
2
说明/提示
对于 20% 的数据, n≤10。
对于 50% 的数据, n≤10^3。
对于 70% 的数据, n≤10^5。
对于 100% 的数据,1≤n≤10^6 0≤ai≤bi≤10^6。
实现代码:
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<string>
using namespace std;
struct bisai{int st;int et;
}bs[100001];
bool cmp(bisai a,bisai b){return a.et < b.et; //按照结束时间从小到大排序
}
int main(){int n;cin>>n;for(int i=0;i<n;i++){scanf("%d%d",&bs[i].st,&bs[i].et);}sort(bs,bs+n,cmp);int ans=1,endtime=bs[0].et;for(int i=1;i<n;i++){if(bs[i].st>=endtime){endtime = bs[i].et;ans++;}}cout<<ans<<endl;return 0;
}
贪心算法——洛谷(P1803)相关推荐
- 贪心算法——洛谷(P1478)陶陶摘苹果
我们看一下,在这个题里,所有苹果费力气也就是占背包空间不同,但是价值都是1.背包问题主要是为了解决拿得多却不一定价值最大,拿价值大的却可能装不下其他有价值的东西而使人陷入两难才被发明的算法.对于价值相 ...
- 贪心算法——洛谷(P1090)[NOIP2004]合并果子
该题目也属于经典的贪心算法,在这里熟悉C++里优先队列的使用. 需要导入头文件: #include<queue> 从这个问题可以深挖出神奇的哈夫曼树问题. 因为这题里合并的是二叉树,所 ...
- 贪心算法——洛谷(P4995)跳跳!
很简单的一道题,就是排序之后贪心+模拟: 先将台阶的高度从小到大排序,注意0也算,但是不是输入进去的: 每次从距离 最小和最大值之间跳跃, 从最小跳到最大之后,最大值不变,最小的下标+1,从最大跳到最 ...
- 贪心算法——洛谷(P1094)纪念品分组
读入之后先用sort排序,然后用两个指针一起向中间走,每次选择都尽可能的让当前状态下最大的和最小的分在一组,如果不行就最大的单独分一组,这样贪心下来就是最少分的组了.证明如下: 如果最大的a[r]不与 ...
- 贪心算法——洛谷(P1106)删数问题
首先,我们先举一个例子: 1 7 5 4 3 8 删的个数:4 不难看出: 第一次删的应该是 7 第二次删的应该是 5 第三次删的应该是 4 第四次删的应该是 8 那么,剩下的数就是"13& ...
- 贪心算法——洛谷(P3817)小A的糖果
这道题很简单,但是需要思考 当相邻的两盒大于x到时候,应该先吃那一盒呢? 答案:正着遍历,吃后面:反着遍历,吃前面! 为什么是这样的呢? 比如一个样例: 5 6 4 5 3 6 2 此时,若正着遍历, ...
- 信息学奥赛一本通 1323:【例6.5】活动选择 | 1422:【例题1】活动安排 | 洛谷 P1803 凌乱的yyy / 线段覆盖
[题目链接] ybt 1323:[例6.5]活动选择 ybt 1422:[例题1]活动安排 洛谷 P1803 凌乱的yyy / 线段覆盖 注意:ybt 1323数据个数最大为 1 0 3 10^3 1 ...
- 贪心算法:洛谷P1803凌乱的yyy解析(java)
题目描述 相关链接:https://www.luogu.com.cn/problem/P1803 解析 这道题对于java来说,第一思路应该是贪心算法,创建一个二维数组(或者创建两个数组),然后对结束 ...
- 洛谷 P1803 凌乱的yyy
P1803 凌乱的yyy 题目网址:https://www.luogu.com.cn/problem/P1803 题目描述: 给出比赛的时间段,求能够参加比赛的最大数目. 输入输出: 输入:第一行是一 ...
最新文章
- 设置Button控件创建完毕时触发的事件.
- Confluence 6 配置文件和key
- 重在参与吗。。。。。。。。
- python笔记:断言assert
- C/C++程序语言概念
- 如何选择适合自己公司的移动办公系统?
- SSH 本地和服务器传输
- 360的驱动(qutmdrv.sys)分页内存泄露
- AI 重塑 IT 的 5 种方式
- eas报错日记_(FAQ)EAS服务启动失败[金蝶EAS]
- PKM2 - PKManager (基于内容的个人知识管理工具) 5M 绿色免费
- J-Trace入门系列1:感动人心的功能与更感动人心的售价
- Android回声消除调研 20220321
- Pr视频剪辑软件使用小结
- 第三天---网络系统硬件
- Elasticsearch 分布式搜索引擎 -- 数据聚合(聚合的种类、DSL实现聚合、RestAPI实现聚合)
- 产品战略与战术之行业分析
- 日常维护SQL以及脚本
- 现在写Android,性能优化太重要了!
- 简述人工智能的发展历程图_人工智能的发展进程及现状