当前位置: 首页 > wzjs >正文

太原做网站联系方式深圳网站建设龙华新科

太原做网站联系方式,深圳网站建设龙华新科,企业官网设计图,做网站下载好素材之后怎么建造主页题目 为了庆祝党成立100周年,某公园将举行多场文艺表演,很多演出都是同时进行,一个人只能同时观看一场演出,且不能迟到早退,由于演出分布在不同的演出场地,所以连续观看的演出最少有15分钟的时间间隔&#…

题目


为了庆祝党成立100周年,某公园将举行多场文艺表演,很多演出都是同时进行,一个人只能同时观看一场演出,且不能迟到早退,由于演出分布在不同的演出场地,所以连续观看的演出最少有15分钟的时间间隔,

小明是一个狂热的文艺迷,想观看尽可能多的演出, 现给出演出时间表,请帮小明计算他最多能观看几场演出。

输入描述
第一行为一个数 N,表示演出场数

1 ≤ N ≤ 1000
接下来 N 行,每行有被空格分割的整数,第一个整数 T 表示演出的开始时间,第二个整数 L 表示演出的持续时间

T 和 L 的单位为分钟
0 ≤ T ≤ 1440
0 < L ≤ 180

输出描述
输出最多能观看的演出场数。

用例

输入输出

2

720 120

840 120

1

2

0 60

90 60

2

思考

观看下一场演出条件是必须保证下一场演出在第一场演出结束15分钟以后开始。区间问题,每场演出有个开始时间和结束时间,先按结束时间对每场演出子区间从小到大排序,再遍历每场演出,如果当前演出开始时间大于上一场演出结束时间+15分钟,则把当前场次演出加入结果统计。

算法过程

  1. 输入处理

    • 读取演出场数 N
    • 读取每场演出的开始时间 T 和持续时间 L,计算结束时间为 T + L
    • 将每场演出表示为一个区间 [start, end],存储在列表中。
  2. 区间排序

    • 将所有演出区间按照结束时间升序排列。
    • 若两个区间的结束时间相同,则按开始时间升序排列。
    • 排序的目的是优先选择结束时间早的演出,为后续演出留出更多时间。
  3. 初始化计数器

    • 初始化已选择的演出数量 count = 0
    • 初始化上一场演出的结束时间 lastEndTime = -∞(确保第一场演出总能被选择)。
  4. 遍历排序后的区间

    • 对于每个演出区间 [start, end]
      • 检查该演出的开始时间 start 是否大于等于 lastEndTime + 15
      • 若是,则选择该演出:
        • count 加 1。
        • 更新 lastEndTime 为当前演出的结束时间 end
  5. 输出结果

    • 返回 count,即最多能观看的演出场数。

算法关键点

  1. 贪心策略

    • 每次选择结束时间最早且满足时间间隔(15 分钟)的演出。
    • 这一策略能最大化后续可用时间窗口,从而选择更多演出。
  2. 时间间隔处理

    • 通过 start >= lastEndTime + 15 确保两场演出之间有足够的间隔。
    • 这一条件直接排除了时间冲突的演出。
  3. 排序稳定性

    • 结束时间相同时按开始时间排序,确保算法在边界情况下正确选择。

复杂度分析

  • 时间复杂度:排序操作的时间复杂度为 \(O(N \log N)\),遍历区间的时间复杂度为 \(O(N)\),因此总的时间复杂度为 \(O(N \log N)\)。
  • 空间复杂度:主要用于存储演出区间列表,空间复杂度为 \(O(N)\)。

参考代码

function solution() {const n = parseInt(readline());const shows = [];for (let i = 0; i < n; i++) {const [T, L] = readline().split(" ").map(Number);shows.push({ begin: T, end: T + L });}// 按结束时间升序排序,如果结束时间相同,则按开始时间升序排序shows.sort((a, b) => a.end - b.end || a.begin - b.start);let count = 0;let lastEndTime = -Infinity;for (const show of shows) {if (show.begin >= lastEndTime + 15) {count++;lastEndTime = show.end;}}console.log(count);
}const cases = [`2
720 120
840 120`,`2
0 60
90 60`
];
let caseIndex = 0;
let lineIndex = 0;const readline = (function () {let lines = [];return function () {if (lineIndex === 0) {lines = cases[caseIndex].trim().split("\n").map((line) => line.trim());}return lines[lineIndex++];};
})();cases.forEach((_, i) => {caseIndex = i;lineIndex = 0;solution();
});


文章转载自:

http://Zt7I5zVZ.bqfpm.cn
http://Pbtcrdfr.bqfpm.cn
http://juosHNzD.bqfpm.cn
http://b2hunah6.bqfpm.cn
http://r91PVp5B.bqfpm.cn
http://cW0ThP3J.bqfpm.cn
http://QkxcawGv.bqfpm.cn
http://9L8nN3Fb.bqfpm.cn
http://mM7pMxYp.bqfpm.cn
http://BP2BaZXW.bqfpm.cn
http://q4VZWACM.bqfpm.cn
http://KIl6LxxM.bqfpm.cn
http://efVNjHhB.bqfpm.cn
http://CKhm0nq2.bqfpm.cn
http://XinBsGlD.bqfpm.cn
http://uvxRIS71.bqfpm.cn
http://5Huelys6.bqfpm.cn
http://AAACYc8E.bqfpm.cn
http://Wskb5o85.bqfpm.cn
http://JqahuKmd.bqfpm.cn
http://8L3Mk1eV.bqfpm.cn
http://0jFSu8EM.bqfpm.cn
http://3VpGwuDS.bqfpm.cn
http://269CXonA.bqfpm.cn
http://uYnYoqIF.bqfpm.cn
http://XeXzKRNP.bqfpm.cn
http://go5vaVJL.bqfpm.cn
http://oEFE0src.bqfpm.cn
http://DJIycQlC.bqfpm.cn
http://HPbjfpGx.bqfpm.cn
http://www.dtcms.com/wzjs/687482.html

相关文章:

  • 庆阳网站建设网站开发服务器
  • 深圳营销型网站建设公司选择哪家好江苏广兴建设集团网站
  • 高德地图能否上传vr全景图片windows7优化大师
  • 17网站一起做网店怎么下单网站模板切换
  • 网站建设策划书主要内容宝客上海网络科技有限公司
  • 渭南市住房和城乡建设局官方网站个人网站建设软件
  • 电子政务 网站建设软件开发有哪些岗位
  • 国内商城网站建设同一个域名网站做301
  • 网站建站前期准备工作互联网公司排名2024
  • html5手机网站源码下载个人做房产网站有哪些
  • 园区网互联及网站建设项目做一晚水泥工歌曲网站
  • 广州网站开发定制设计网络舆情监测关键词
  • 制作单位网站建设银行网站登录不上去
  • 济南网站建设免费装修平台哪个口碑最好
  • 两学一做网站按钮图片网站建设 福州
  • 手机网站asp做一婚恋网站多少钱
  • 旅游网站建设方案之目标营销型网站建设公司推荐
  • 官方网站建设银行信用卡百度地图导航手机版免费下载
  • 长沙网站托管公司排名南阳网站排名优化价格
  • 宣传网站站点最有效的方式是北京市门头沟有没有做网站的
  • 网站建设的售后服务怎么写安徽省住房城乡建设厅网站公示
  • ps做电商网站图标备案信息查询官网
  • 手工视频制作网站合肥全网推广
  • 网站模板源码下载网学校网站建站
  • 网站建设最好济南高端网站建设价格
  • 手机上哪个网站企业网站优化设计应该把什么放在首位
  • 软件属于网站开发吗做实验用哪些国外网站
  • 益阳建设网站公司凯里市建设局网站
  • vs2010网站开发 视频北京大学php培训网站源码(dede
  • 深圳龙岗高端网站建设宁波高端网站制作公司