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

github做网站空间seo发包技术教程

github做网站空间,seo发包技术教程,深圳的深圳的网站建设公司,网站做移动适配以后可以取消吗题目描述 为了庆祝中国共产党成立100周年,某公园将举行多场文艺表演。由于演出分布在不同的场地,一个人只能同时观看一场演出,且不能迟到早退。连续观看的演出之间最少需要有15分钟的时间间隔。小明是一个狂热的文艺迷,想观看尽可…

题目描述

为了庆祝中国共产党成立100周年,某公园将举行多场文艺表演。由于演出分布在不同的场地,一个人只能同时观看一场演出,且不能迟到早退。连续观看的演出之间最少需要有15分钟的时间间隔。小明是一个狂热的文艺迷,想观看尽可能多的演出。现给出演出时间表,请帮小明计算他最多能观看几场演出。

输入描述

  • 第一行为一个数N,表示演出场数,1 <= N <= 1000。
  • 接下来N行,每行有两个被空格分割的整数:
    • 第一个整数T表示演出的开始时间,单位为分钟,0 <= T <= 1440。
    • 第二个整数L表示演出的持续时间,单位为分钟,0 <= L <= 100。

输出描述

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

解题思路

这是一个典型的活动选择问题,可以使用贪心算法来解决。具体步骤如下:

  1. 计算每场演出的结束时间:根据开始时间和持续时间计算每场演出的结束时间。
  2. 按结束时间排序:将所有演出按结束时间从早到晚排序。
  3. 选择演出:从最早结束的演出开始选择,每次选择结束后,确保下一场演出的开始时间至少比当前演出的结束时间晚15分钟。

代码实现

Java
import java.util.Arrays;
import java.util.Comparator;public class MaxShows {public static int maxShows(int[][] shows) {// 计算每场演出的结束时间for (int[] show : shows) {show[1] += show[0];}// 按结束时间排序Arrays.sort(shows, Comparator.comparingInt(a -> a[1]));int count = 0;int lastEnd = -15; // 初始化为-15,确保第一场演出可以被选择for (int[] show : shows) {if (show[0] >= lastEnd + 15) {count++;lastEnd = show[1];}}return count;}public static void main(String[] args) {int[][] shows = {{600, 90},{720, 60},{800, 45}};System.out.println(maxShows(shows));}
}
Python
def max_shows(shows):# 计算每场演出的结束时间shows = [[start, start + duration] for start, duration in shows]# 按结束时间排序shows.sort(key=lambda x: x[1])count = 0last_end = -15  # 初始化为-15,确保第一场演出可以被选择for show in shows:if show[0] >= last_end + 15:count += 1last_end = show[1]return countshows = [[600, 90],[720, 60],[800, 45]
]
print(max_shows(shows))
C++
#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int maxShows(vector<vector<int>>& shows) {// 计算每场演出的结束时间for (auto& show : shows) {show[1] += show[0];}// 按结束时间排序sort(shows.begin(), shows.end(), [](const vector<int>& a, const vector<int>& b) {return a[1] < b[1];});int count = 0;int lastEnd = -15; // 初始化为-15,确保第一场演出可以被选择for (const auto& show : shows) {if (show[0] >= lastEnd + 15) {count++;lastEnd = show[1];}}return count;
}int main() {vector<vector<int>> shows = {{600, 90},{720, 60},{800, 45}};cout << maxShows(shows) << endl;return 0;
}
JavaScript
function maxShows(shows) {// 计算每场演出的结束时间shows = shows.map(show => [show[0], show[0] + show[1]]);// 按结束时间排序shows.sort((a, b) => a[1] - b[1]);let count = 0;let lastEnd = -15; // 初始化为-15,确保第一场演出可以被选择for (const show of shows) {if (show[0] >= lastEnd + 15) {count++;lastEnd = show[1];}}return count;
}const shows = [[600, 90],[720, 60],[800, 45]
];
console.log(maxShows(shows));

测试用例

测试用例1:

  • 输入:
    3
    600 90
    720 60
    800 45
    
  • 输出:2
  • 说明:小明可以观看第一场和第三场演出。

测试用例2:

  • 输入:
    4
    500 120
    600 90
    720 60
    800 45
    
  • 输出:2
  • 说明:小明可以观看第一场和第三场演出。

总结

通过贪心算法,我们可以有效地解决这个问题。首先计算每场演出的结束时间,然后按结束时间排序,最后选择符合条件的演出。这种方法的时间复杂度为O(n log n),适用于N <= 1000的规模。

http://www.dtcms.com/wzjs/309654.html

相关文章:

  • 政府旅游网站建设seo页面内容优化
  • 东莞公司网站建设营销型网站建设免费推广
  • 网站排名不稳定怎么办临沂做网站推广的公司
  • 网站建设有哪些工作需需要筹备产品关键词大全
  • 网站主页设计抖音优化排名
  • 小俊哥网站建设商丘优化公司
  • 简要列举网站常见类型营销网站建设多少钱
  • 南宁青秀网站建设qq引流推广软件哪个好
  • install.php空白 wordpress廊坊网站排名优化公司哪家好
  • 学做效果图网站免费大数据平台
  • 广州网站设计推荐柚米新产品推广方案怎么写
  • 网站开发与维护能做什么职业短视频运营是做什么的
  • 可以做热图的工具网站爱站网关键词挖掘机
  • 建筑类企业网站模板下载成都网多多
  • 个人虚拟网站免费域名邮箱
  • 开一家网站建设公司要多少钱重要新闻
  • 淄博高端网站设计深圳网络推广网站推广
  • 网站分析步骤友情链接例子
  • 怎样自学做网站需要多少钱百度一下你就知道 官网
  • wordpress
    seo搜索引擎优化入门
  • 上海网站建设与设计公司网络营销方法有哪些举例
  • 阿里云云服务器 网站配置网络营销的八大职能
  • 南京微网站开发可以直接打开网站的网页
  • 北京新闻网站网站每天做100个外链
  • 购物商城网站建设流程郑州中原区最新消息
  • 重庆商务网站建设sem分析是什么意思
  • 重庆做网站推广seo点击排名软件哪家好
  • 简述网站建设的具体步骤seo优化网站的注意事项
  • 网站建设费归入长期待摊费用seo监控
  • 潍坊做外贸网站百度推广做二级域名