C++程序,用于计算参与者在电影节上能完整观看多少部电影

c++程序,用于计算参与者在电影节上能完整观看多少部电影

假设有一个电影节,展示来自不同国家的各种电影。现在,一个参与者想要参加尽可能多的不重叠的电影,我们需要帮助他们找出他们可以参加多少部电影。

有一个结构体 Movie,它有以下成员:

电影的开始时间。电影的持续时间。电影的结束时间。

还有一个结构体 Festival,它有以下成员:

电影节的电影数量。一个类型为 Movie 的数组,其大小与电影节的电影数量相同。

我们需要创建并初始化一个 Festival 对象,其中包含两个数组 ‘timeBegin’ 和 ‘duration’,它们分别包含多部电影的开始时间和持续时间。整数 n 表示电影的总数,也用于初始化对象。我们进一步使用该对象来计算参与者可以完整观看多少部电影。

立即学习“C++免费学习笔记(深入)”;

因此,如果输入是 timeBegin = {1, 3, 0, 5, 5, 8, 8},duration = {3, 2, 2, 4, 3, 2, 3},n = 7,那么输出将是 4

参与者可以在该电影节上完整观看 4 部电影。

为了解决这个问题,我们将按照以下步骤进行:

结构体 Movie {定义三个成员变量 timeBegin、duration、timeEnd重载运算符 ‘返回 timeEnd 结构体 Festival {定义一个成员变量 count定义一个包含 Movie 类型项的数组 movies定义一个函数 initialize(),它将接受数组 timeBegin 和 timeEnd 以及一个整数 n。filmFestival := 一个新的 Festival 对象filmFestival 的 count := count对于初始化 i := 0,当 i temp := 一个新的 Movie 类型对象temp 的 timeBegin := timeBegin[i]temp 的 duration := duration[i]temp 的 timeEnd := timeBegin[i] + duration[i]将 temp 插入到 filmFestival 的 movies 数组中返回 filmFestival定义一个函数 solve(),它将接受一个类型为 Festival 的变量 fest,res := 0对 fest 的 movies 数组进行排序timeEnd := -1对于初始化 i := 0,当 i count 时,更新 (将 i 增加 1),执行以下操作:如果 fest 的 movies[i] 的 timeBegin >= timeEnd,则执行以下操作:(将 res 增加 1)timeEnd := fest 的 movies[i] 的 timeEnd返回 res

示例

让我们看一下以下实现以更好地理解:

#includeusing namespace std;struct Movie {   int timeBegin, duration, timeEnd;   bool operator movies;};Festival* initialize(int timeBegin[], int duration[], int count) {   Festival* filmFestival = new Festival;   filmFestival->count = count;   for (int i = 0; i movies.push_back(temp);   }   return filmFestival;}int solve(Festival* fest) {   int res = 0;   sort(fest->movies.begin(), fest->movies.end());   int timeEnd = -1;   for (int i = 0; i count; i++) {      if (fest->movies[i].timeBegin >= timeEnd) {         res++;            timeEnd = fest->movies[i].timeEnd;      }   }   return res;}int main(int argc, char *argv[]) {int timeBegin[] = {1, 3, 0, 5, 5, 8, 8};int duration[] = {3, 2, 2, 4, 3, 2, 3};Festival * fest;fest = initialize(timeBegin,duration, 7);cout 

输入

int timeBegin[] = {1, 3, 0, 5, 5, 8, 8};int duration[] = {3, 2, 2, 4, 3, 2, 3};Festival * fest;fest = initialize(timeBegin,duration, 7);

登录后复制

输出

4

登录后复制

以上就是C++程序,用于计算参与者在电影节上能完整观看多少部电影的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2582768.html

(0)
上一篇 2025年3月6日 14:23:48
下一篇 2025年2月27日 03:56:23

AD推荐 黄金广告位招租... 更多推荐

发表回复

登录后才能评论