news 2026/1/16 6:06:43

贪心 区间选点AC905

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
贪心 区间选点AC905
#include<bits/stdc++.h> using namespace std; const int N=1e5+10; struct Range{ int l, r; }h[N]; // 自定义比较函数 bool cmp(Range a, Range b){ return a.r < b.r; // 按右端点从小到大 } int main(){ int n; cin>>n; for(int i=0;i<n;i++){ int l, r; cin>>l>>r; h[i] = {l, r}; } // 使用自定义比较函数排序 sort(h, h+n, cmp); int res=0, end=-2e9; // end表示最后选择的点 for(int i=0;i<n;i++){ // 如果当前区间不包含最后选择的点 if(end < h[i].l){ res++; // 需要新点 end = h[i].r; // 选择当前区间的右端点 } // 否则(end >= h[i].l)说明区间已包含点,跳过 } cout<<res<<endl; return 0; }

这个sort也可以用重载运算符写

struct Range{ int l, r; // 重载小于运算符,按右端点排序 bool operator< (const Range &W) const { return r < W.r; } }h[N]; // 使用lambda表达式排序 sort(h, h+n, [](Range a, Range b){ return a.r < b.r; // 按右端点从小到大 }); // 定义比较仿函数 struct Cmp{ bool operator()(Range a, Range b){ return a.r < b.r; } }; // 使用仿函数排序 sort(h, h+n, Cmp());

关于原题中描述是位于区间端点上的点也算作区间内。

实际上用end < h[i].l也能AC

  1. 如果end == l:点end在区间[l, r]左端点

    • 根据题目,端点算区间内 ✅

    • 当前区间已包含end

    • 应该跳过当前区间

排序:[(1,3), (3,5)] i=0: end=-∞ < 1 → true 选择点3, end=3, res=1 i=1: end=3 < 3 → false 跳过区间(3,5) 结果:res=1 ✓

还有vector的写法

#include <iostream> #include <algorithm> #include <vector> using namespace std; const int N = 100010; //保存区间 vector<vector<int>> a(N,vector<int>(2,0)); int n; int main() { cin >> n; //读入区间 for(int i = 0; i< n; i++) { int l, r; cin >> l >> r; a[i][0] = l; a[i][1] = r; } // 按右端点排序 sort(a.begin(), a.begin() + n, [](vector<int> &a, vector<int> &b){return a[1] < b[1];}); // res 保存答案,end 是当前选的点 int res = 0, end = -1e9 - 10; // 遍历区间 for(int i = 0; i < n; i++) { // 如果当前选的点覆盖了该区间,则跳过 if(end >= a[i][0] && end <= a[i][1]) continue; else { // 选的点+1, 选的点更新为区间右端点 res++; end = a[i][1]; } } cout << res; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/5 1:19:53

我开源了一个Markdown转PDF工具

我开源了一个Markdown转PDF工具本文共 833 字&#xff0c;阅读预计需要 2 分钟。Hi&#xff0c;你好&#xff0c;我是Carl&#xff0c;一个本科进大厂做了2年AI研发后&#xff0c;裸辞的AI创业者。写了一篇技术文档&#xff0c;发给甲方。对方说&#xff1a;「能不能转成PDF&am…

作者头像 李华
网站建设 2026/1/15 21:18:40

Python 基础语法(二):程序流程控制

一、 顺序语句在 Python 中&#xff0c;代码默认的执行顺序是从上到下&#xff0c;依次执行。这种结构清晰、无歧义的执行方式称为顺序语句。核心概念&#xff1a;执行顺序是编程的基础&#xff0c;计算机严格按照代码的书写顺序执行指令。安排正确的任务顺序是程序逻辑正确的关…

作者头像 李华
网站建设 2026/1/11 17:51:02

YoloV8 Detect类扩展支持Qwen-Image生成掩码

YoloV8 Detect类扩展支持Qwen-Image生成掩码 在广告设计、电商主图更新或影视分镜迭代中&#xff0c;一个常见的挑战是&#xff1a;如何快速且精准地修改图像中的特定对象&#xff1f;比如&#xff0c;“把这瓶饮料换成金色包装”“让这只狗穿上雨衣”&#xff0c;传统流程依赖…

作者头像 李华
网站建设 2026/1/10 3:42:57

深度学习视频教程资源合集

14-深度学习-图像识别原理 文件大小: 4.0GB内容特色: 4GB 原理代码案例&#xff0c;吃透 CNN、YOLO、Transformer 视觉适用人群: 计算机视觉初学者、算法工程师、研究生核心价值: 从底层卷积到工业检测&#xff0c;一站式掌握图像识别核心下载链接: https://pan.quark.cn/s/c6…

作者头像 李华
网站建设 2026/1/15 22:55:29

9 个课堂汇报 AI 工具,专科生快速生成内容推荐

9 个课堂汇报 AI 工具&#xff0c;专科生快速生成内容推荐 当论文写作成为一场与时间的赛跑 对于专科生来说&#xff0c;课堂汇报、论文写作、文献综述等任务早已成为学习生活中不可或缺的一部分。然而&#xff0c;这些看似普通的学术任务背后&#xff0c;却隐藏着无数令人头疼…

作者头像 李华
网站建设 2026/1/11 21:28:13

郭大勇:以安全固根基 共建数字金融新生态

12月2日至5日&#xff0c;2025企业家博鳌论坛系列活动在海南博鳌举行。在4日举行的数字金融安全发展大会上&#xff0c;中国银联党委副书记、副董事长、总裁郭大勇出席活动并致辞。中国银联党委副书记、副董事长、总裁 郭大勇郭大勇在致辞中表示&#xff0c;在当前数字金融蓬勃…

作者头像 李华