东东的朋友二

这篇博客探讨了如何解决一个关于安排朋友空闲时间的问题。东东需要在不冲突的情况下陪伴每个朋友至少一次,而他的朋友们也有上课时间。通过将一天的24小时视为数轴,并将每个朋友的空闲时间视为区间,博主提出了一个反向思考的解决方案,通过计算最大重叠次数(最大天数)来确保无冲突的日程安排。博主提供了相应的Python代码实现。
摘要由CSDN通过智能技术生成

题目描述

我们已经知道了,东东有很多的朋友。每个朋友都要东东陪他们,但是现在东东的朋们每天也都需要上课,所以不可能一整天都有时间。现在的问题是,给出东东朋友每一天的空闲时间,问东东最少用多少天可以陪每个朋友至少一次。因为东东还要留很多时间来学习算法呢。当然当东东在陪一个朋友时间段内不可以同时去陪另一个朋友。

输入输出格式

输入格式
第一个数 n(n≤100) 表示东东有 n 个朋友。接下来的 n 行,每行有两个数 s , e 表示东东的朋友的空闲时间的起始时间和终止时间(0≤s≤e≤24)。
同一行的数字用空格隔开。
输出格式
输出东东所需要的最少的天数来陪他的朋友们。

输入输出样例

输入

 
  1. 3
  2. 1 8
  3. 2 3
  4. 4 7

输出
2

题目思路:

我们将一天24小时看做一个数轴(的一部分),将每个朋友的空闲时间看作一个区间,朋友的空闲时间相互冲突当且仅当其对应区间有所重叠。下面说明这些区间的最大重叠次数就是我们所求的最大天数。

我们可以反着想,如果求出了m天满足题意,那么这m个数轴必定可以无重叠的包含这n个区间。

对于一个区间M1,如果有x个区间和它重叠,那么只要分给它们x个数轴,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值