Peter算法小课堂—区间模型

Peter Pan来啦……

最大不重叠区间数

二话不说,先来一道题

大家想想怎么贪心?我们可以将每一个美食摊位抽象成一个区间,区间左端点为开始排队时间,右端点为结束排队时间。其中,时间信息可以用数轴表示。

额……我们先给出一个错误的贪心

大家想想有没有反例?我将这种反例称之为“锁结构”,如下图

按照上面的贪心法,我们应该选粉色的时间段,但是呢?我们能找到更优的选法,即两端红色的时间段。那么,正确的贪心怎么做的呢?

我们来个证明:我们要最多的不重叠,我们就要腾出时间留给后面的任务,换句话说就要前面的任务早点结束,于是QED。大家尝试做一做。

#include <bits/stdc++.h>
using namespace std;
const int N=109;
int n,x,i,ans;
struct food{int s,t;
};
bool cmp(const food& a,const food& b){return a.t<b.t;
}
food d[N];
int main(){cin>>n;for(i=0;i<n;i++) cin>>d[i].s;for(i=0;i<n;i++) cin>>d[i].t;sort(d,d+n,cmp);x=-1;ans=0;for(i=0;i<n;i++)if(d[i].s>=x){ans++;x=d[i].t;}cout<<ans<<endl;return 0;
}

不重叠区间最少分组数

看着标题好像有点难懂,来道题吧

我们依然可以把每门课抽象成一个区间

这个贪心有点难,证明也很奇怪,所以,我打成图。

具体证明见后。

证明

浅谈信息学竞赛中的区间问题.docx-综合论文-在线文档投稿赚钱网 (book118.com)

结束啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/681169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day1-闯入 Linux运维世界

1.解释我们正在使用哪些互联网行业的软件&#xff0c;移动端&#xff1f;PC端&#xff1f; 移动端软件和服务&#xff1a; 如微信、微博、抖音等如淘宝、京东、拼多多等如支付宝、微信支付等如高德地图、百度地图等如滴滴出行、Uber等 PC端软件和服务&#xff1a; 办公软件&…

【分布式技术专题】「Zookeeper中间件」Paxos协议的原理和实际运行中的应用流程分析

Paxo算法介绍 Paxos算法是莱斯利兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法。 Paxos产生背景 Paxos算法是基于消息传递且具有高度容错特性的一致性算法&#xff0c;是目前公认的解决分布式一致性问题最有效的算法之一&#xff0c;其解决的问题就是在分…

nginx用域名http://xx.com/aaa/代理一个网页http://ff.com但是请求资源时发生404

哎&#xff0c;还得是chatgpt&#xff0c;难道就没有人有这种使用场景吗&#xff1f;没查到一个配置是有效的。 我&#xff1a; 我配置了nginx反向代理&#xff0c;用域名http://xx.com/aaa/代理一个网页http://ff.com&#xff0c; 但是请求资源时发生404&#xff0c;如何解决&…

【langchain中自定义LLM together为例子】

为了在LangChain中使用TogetherAI&#xff0c;我们必须扩展基本LLM抽象类。 这里有一个创建自定义LLM包装器的示例代码&#xff08;https://python.langchain.com/docs/modules/model_io/llms/custom_llm&#xff09;&#xff0c;但我们将通过类型验证、异常处理和日志记录使其…

C++ 位运算

任何信息在计算机中都是采用二进制表示的&#xff0c;数据在计算机中是以补码形式存储的&#xff0c;位运算就是直接对整数在内存中的二进制位进行运算。由于位运算直接对内存数据进行操作&#xff0c;不需要转换成十进制&#xff0c;因此处理速度非常快。 一、位运算符 C 提…

轮播图 HarmonyOS 鸿蒙 ArkTS ArkUI

第一步&#xff1a;新建图片数组 State swiperimgs:Array<Object>[$r(app.media.a), //本地图片或者网络图片$r(app.media.b),$r(app.media.c),$r(app.media.d)] 第二步&#xff1a;写入轮播图代码 Column(){Swiper(){ForEach(this.swiperimgs, (item) > {Image(item…

【c语言】字符串常见函数 上

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;c语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&a…

【JVM篇】怎么解决内存泄漏问题

文章目录 &#x1f50e;什么是内存泄漏&#x1f6f8;解决内存泄漏⭐发现问题⭐诊断原因⭐修复问题 &#x1f50e;什么是内存泄漏 在Java中如果不再使用一个对象&#xff0c;但是这个对象仍然在GC Root的引用链上&#xff0c;这个对象就不会被垃圾回收器回收&#xff0c;这种情…

openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O

文章目录 openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O218.1 查看I/O状况218.2 性能参数分析 openGauss学习笔记-218 openGauss性能调优-确定性能调优范围-硬件瓶颈点分析-I/O 获取openGauss节点的CPU、内存、I/O和网络资源使用情况&#xf…

[C++]17:二叉树进阶

二叉树进阶 一.二叉搜索树&#xff1a;1.二叉搜索树的概念&#xff1a;2.二叉搜索树的实现---循环版本&#xff1a;1.二叉搜索树的基本结构&#xff1a;2.查找&#xff1a;3.插入&#xff1a;4.中序遍历&#xff1a;5.删除&#xff1a; 3.二叉搜索树的实现---递归版本&#xff…

随机过程及应用学习笔记(二)随机过程的基本概念

随机过程论就是研究随时间变化的动态系统中随机现象的统计规律的一门数学学科。 目录 前言 一、随机过程的定义及分类 1、定义 2、分类 二、随机过程的分布及其数字特征 1、分布函数 2、数字特征 均值函数和方差函数 协方差函数和相关函数 3、互协方差函数与互相关函…

Java String源码剖析+面试题整理

由于字符串操作是计算机程序中最常见的操作之一&#xff0c;在面试中也是经常出现。本文从基本用法出发逐步深入剖析String的结构和性质&#xff0c;并结合面试题来帮助理解。 String基本用法 在Java中String的创建可以直接像基本类型一样定义&#xff0c;也可以new一个 Str…

【JAVA WEB】JavaScript-条件语句

目录 条件语句 if……else语句 三元表达式 switch 数组 创建数组 获取数组元素 新增数组元素 1.通过修改 length 新增 2.通过下标新增 3. 使用push进行追加元素 删除数组中的元素 调试 条件语句 if……else语句 示例&#xff1a; <script> let numprompt(&…

洛谷 P1678 烦恼的高考志愿 (Java)

洛谷 P1678 烦恼的高考志愿 (Java) 传送门&#xff1a;P1678 烦恼的高考志愿 题目&#xff1a; 烦恼的高考志愿 题目背景 计算机竞赛小组的神牛 V 神终于结束了高考&#xff0c;然而作为班长的他还不能闲下来&#xff0c;班主任老 t 给了他一个艰巨的任务&#xff1a;帮同学…

[ai笔记5] 个人AI资讯助手实战

欢迎来到文思源想的ai空间&#xff0c;这是技术老兵重学ai以及成长思考的第5篇分享&#xff0c;也是把ai场景化应用的第一篇实操内容&#xff01; 既然要充分学习和了解ai&#xff0c;自然少不了要时常看看ai相关资讯&#xff0c;所以今天特地用字节的“扣子”做了一个ai的资讯…

Java中抽象类和接口的区别

抽象类和接口都是 Java 中多态的常见使用方式. 都需要重点掌握. 同时又要认清两者的区别(重要!!! 常见面试题)。 核心区别: 抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用(不必重写而重写抽象方法), 而接口中不能包含普通方法&#xff08;接口…

宿舍|学生宿舍管理小程序|基于微信小程序的学生宿舍管理系统设计与实现(源码+数据库+文档)

学生宿舍管理小程序目录 目录 基于微信小程序的学生宿舍管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;学生信息管理 &#xff08;2&#xff09;公告信息管理 &#xff08;3&#xff09;宿舍信息管理 &am…

Windows 安装Redis

Windows下安装Redis详细的操作流程和案例&#xff1a; 下载Redis&#xff1a; 访问Redis官方网站&#xff08;https://redis.io/&#xff09;。在"Download"页面中选择适合你操作系统的稳定版本并下载。 解压Redis安装包&#xff1a; 找到下载的Redis安装包文件&…

CentOS7集群安装JDK1.8

准备工作 1、提前安装三台虚拟机&#xff0c;可以参考:https://mp.csdn.net/mp_blog/creation/editor/136010108 2、三台虚拟机分别配置免密登录&#xff0c;参考&#xff1a;https://blog.csdn.net/LSW_JAVADP/article/details/121757927 安装 JDK 一、官网下载对应JDK 自…

mlxtend,一个非常好用的 Python 库!

前言 Python 的 MLxtend&#xff08;Machine Learning Extensions&#xff09;库是一个强大的工具&#xff0c;为机器学习实验提供了一系列功能强大的扩展和工具。本文将深入探讨 MLxtend 库的核心功能、用法以及如何在机器学习项目中充分发挥其优势。 目录 前言 什么是 MLx…