贪心算法-区间问题 C++

devtools/2024/11/27 4:27:35/

题目一

在这里插入图片描述

解题思路

原题解:https://www.acwing.com/solution/content/79913/在这里插入图片描述

代码实现

#include<iostream>
#include<algorithm>using namespace std;const int N = 1e5 + 10;struct Range {int l, r;bool operator < (const Range &w) const {return r < w.r;}
}range[N];int main()
{int n;cin >> n;for (int i = 0; i < n; i ++ ){scanf("%d%d", &range[i].l, &range[i].r);}sort(range, range + n);int res = 0, ed = -0x3f3f3f3f;for (int i = 0; i < n; i ++ ){if (ed < range[i].l){res ++;ed = range[i].r;}}cout << res;return 0;
}

题目二

在这里插入图片描述

解题思路

在这里插入图片描述

代码实现

#include<iostream>
#include<algorithm>using namespace std;const int N = 1e5 + 10;struct Range {int l, r;bool operator < (const Range &w) const {return r < w.r;}
}range[N];int main()
{int n;cin >> n;for (int i = 0; i < n; i ++ ){scanf("%d%d", &range[i].l, &range[i].r);}sort(range, range + n);int res = 0, ed = -0x3f3f3f3f;for (int i = 0; i < n; i ++ ){if (ed < range[i].l){ed = range[i].r;res ++;}}cout << res;return 0;
}

题目三

在这里插入图片描述

解题思路

原题解:https://www.acwing.com/solution/content/14773/
在这里插入图片描述

代码实现

#include<iostream>
#include<algorithm>
#include<queue>using namespace std;const int N = 1e5 + 10;struct Range {int l, r;bool operator < (const Range &w) const{return l < w.l;}
}range[N];int main()
{int n;cin >> n;for (int i = 0; i < n; i ++ ){scanf("%d%d", &range[i].l, &range[i].r);}sort(range, range + n);priority_queue<int ,vector<int>, greater<int>> heap;for (int i = 0; i < n; i ++){if (heap.empty() || range[i].l <= heap.top()){heap.push(range[i].r);}else{heap.pop();heap.push(range[i].r);}}cout << heap.size();return 0;
}

题目四

在这里插入图片描述

解题思路

原题解:https://www.acwing.com/solution/content/16980/
在这里插入图片描述
为什么r = -2e9不能放在for循环内:
例如样例:
4 10 2
4 5
11 12
当第一轮st更新后是5,第二轮j 还是 0,不过此时应该退出了,但如果-2e9放在外面,
if (r < st)
{
res = -1;
break;
}
就不会执行

代码实现

#include<iostream>
#include<algorithm>using namespace std;const int N = 1e5 + 10;struct Range {int l, r;bool operator < (const Range &w) const {return l < w.l;}
}range[N];int main()
{int st, ed, n;cin >> st >> ed >> n;for (int i = 0; i < n; i ++ ){scanf("%d%d", &range[i].l, &range[i].r);}sort(range, range + n);int res = 0;bool flag = false;for (int i = 0; i < n; i ++){int j = i, r = -0x3f3f3f3f;while (range[j].l <= st && j < n){r = max(r, range[j].r);j ++;}if (r < st){flag = true;break;}res ++;st = r;if (r >= ed){break;}i = j - 1;}if (flag || st < ed){res = -1;}cout << res;return 0;
}

http://www.ppmy.cn/devtools/137306.html

相关文章

智能文档处理百宝箱,文档处理的必备利器

1、引言 文档解析是开发者在业务实践中会频繁面临的场景&#xff0c;不管是用AI辅助日常工作&#xff0c;还是从事产品研发&#xff0c;从非结构化文本中提取文字、图片等信息具有很大的挑战。 目前市面上的文档解析工具普遍存在繁杂无序&#xff0c;缺乏统一评估标准&#xff…

win10中使用ffmpeg和MediaMTX 推流rtsp视频

在win10上测试下ffmpeg推流rtsp视频&#xff0c;需要同时用到流媒体服务器MediaMTX 。ffmpeg推流到流媒体服务器MediaMTX &#xff0c;其他客户端从流媒体服务器拉流。 步骤如下&#xff1a; 1 下载MediaMTX github: Release v1.9.3 bluenviron/mediamtx GitHub​​​​​…

[极客大挑战 2019]BabySQL--详细解析

信息搜集 进入界面&#xff1a; 输入用户名为admin&#xff0c;密码随便输一个&#xff1a; 发现是GET传参&#xff0c;有username和password两个传参点。 我们测试一下password点位能不能注入&#xff1a; 单引号闭合报错&#xff0c;根据报错信息&#xff0c;我们可以判断…

uniapp+vue2重新进入小程序就清除缓存,设备需要重新扫码

代码 app.vue页面 <script>export default {onLaunch: function() {uni.removeStorageSync(equiId)}} </script>

Spring Boot 的 WebClient 实践教程

什么是 WebClient&#xff1f; 在 Spring Boot 中&#xff0c;WebClient 是 Spring WebFlux 提供的一个非阻塞、响应式的 HTTP 客户端&#xff0c;用于与 RESTful 服务或其他 HTTP 服务交互。相比于传统的 RestTemplate&#xff0c;WebClient 更加现代化&#xff0c;具有异步和…

已解决WordPress图片无法显示,免插件实现WordPress上传图片时自动重命名

在我们使用 WordPress 发布文章时&#xff0c;经常都需要添加图片、多媒体什么的。然而&#xff0c;大家都知道 WordPress 是舶来物&#xff0c;对于中文用户来说&#xff0c;我们都会把图片命名为中文的&#xff0c;由于 WordPress 机制的原因&#xff0c;并不能正常的显示图片…

[自动化]获取每次翻页后的页面 URL

from DrissionPage import ChromiumPage page ChromiumPage() page.get(热门项目 - Gitee.com) page.listen.start(gitee.com/explore) for i in range(5): page("relnext").click() res page.listen.wait() print(res.url) 这段代码使用了DrissionPage库中的Chromi…

【代码pycharm】动手学深度学习v2-08 线性回归 + 基础优化算法

课程链接 线性回归的从零开始实现 import random import torch from d2l import torch as d2l# 人造数据集 def synthetic_data(w,b,num_examples):Xtorch.normal(0,1,(num_examples,len(w)))ytorch.matmul(X,w)bytorch.normal(0,0.01,y.shape) # 加入噪声return X,y.reshape…