首页 > 其他分享 >最多可完整看完多少节目

最多可完整看完多少节目

时间:2024-09-09 21:52:40浏览次数:9  
标签:end Show int 节目 start 完整 最多 return shows

输入

输入数据包含多组测试数据,每组测试数据的第一行包含一个整数 n(n <= 100),表示你喜欢看的节目的总数。然后是 n 行数据,每行包括两个数据 TSi,TEi(1 <= i <= n),分别表示第 i 个节目的开始和结束时间。为了简化问题,每个时间都用一个正整数表示。

n 为 0 表示输入结束,不做处理。

输出

每组数据输出一个正整数,表示能完整看到的电视节目的个数。

每组输出占一行。

输入样例 1 

12
1 3
3 4
0 7
3 8
15 19
15 20
10 15
8 18
6 12
5 10
4 14
2 9
0

输出样例 1

5

#include <stdio.h>
#include <stdlib.h>

// 定义节目结构体
typedef struct {
    int start;
    int end;
} Show;

// 比较函数,用于qsort排序
int compare(const void *a, const void *b) {
    Show *showA = (Show *)a;
    Show *showB = (Show *)b;
    if (showA->end == showB->end) {
        return showA->start - showB->start;
    }
    return showA->end - showB->end;
}

int max_complete_shows(int n, Show *shows) {
    if (n == 0) {
        return 0;
    }
    
    // 按照结束时间排序,如果结束时间相同,按开始时间排序
    qsort(shows, n, sizeof(Show), compare);
    
    int count = 0;
    int current_end_time = 0;
    
    for (int i = 0; i < n; i++) {
        if (shows[i].start >= current_end_time) {
            count++;
            current_end_time = shows[i].end;
        }
    }
    
    return count;
}

int main() {
    int n;
    while (scanf("%d", &n) != EOF && n != 0) {
        Show shows[100];
        for (int i = 0; i < n; i++) {
            scanf("%d %d", &shows[i].start, &shows[i].end);
        }
        int result = max_complete_shows(n, shows);
        printf("%d\n", result);
    }
    return 0;
}

标签:end,Show,int,节目,start,完整,最多,return,shows
From: https://blog.csdn.net/yishiduoshhaojie/article/details/142034221

相关文章

  • 【Spark+Hive】基于大数据招聘数据分析预测推荐系统(完整系统源码+数据库+开发笔记+详
    文章目录【Spark+Hive】基于大数据招聘数据分析预测推荐系统(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)源码获取方式在文章末尾一、 项目概述二、研究意义三、背景四、国内外研究现状五、开发技术介绍六、算法介绍 七、数据库设计八、系统......
  • 足浴行业在线预约小程序源码系统+支持拼团功能 带完整的安装代码包以及搭建部署教程
    系统概述在快节奏的现代生活中,人们对健康养生的需求日益增长,足浴行业作为传统养生方式之一,其市场需求也随之不断扩大。为了满足消费者日益增长的便捷性需求,一款集在线预约、拼团优惠于一体的足浴行业小程序源码系统应运而生。本文将详细介绍这款源码系统的系统概述、特色功能......
  • Linux 上自动下载 Docker 依赖并离线安装的完整指南
    Linux上自动下载Docker依赖并离线安装的完整指南这篇指南详细讲解了如何在CentOS7.9系统上,通过yum命令自动下载Docker的所有依赖包,并将其打包成tar文件以供离线安装。文中包括了添加Docker软件源、更新yum缓存、指定路径下载依赖包、打包rpm文件,以及最终在无网络环境下......
  • Java基础—运算符篇(从0到1完整详解,附有代码+案例)
    文章目录运算符分类:2.1.算术运算符2.1.1基本算数运算2.1.2复合算数运算2.1.3类型转换2.1.4“+”的三种情况2.2自增自减运算符2.3赋值运算符2.4关系运算符2.5逻辑运算符2.6短路逻辑运算符2.7三元运算符2.8运算的优先级运算符分类:赋值运算符:=算术运算符:+-......
  • PyQt6/PySide6:账本项目前端制作【附完整项目地址】
    0.前言最近在家里闲着没事,正好又看到朋友@studentWheat发了篇用Tkinter做的账本,于是决定跟他一起改进这个程序。屏幕截图:1.后端后端主要是朋友做的,在这里就不多说了,放个代码:src/api.pyfromcollectionsimportdefaultdictclassApiError(RuntimeError):passd......
  • 【Django开发】django美多商城项目完整开发4.0第10篇:收货地址,数据库建表【附代码文档
    本教程的知识点为:项目准备项目准备配置1.修改settings/dev.py文件中的路径信息2.INSTALLED_APPS3.数据库用户部分图片1.后端接口设计:视图原型2.具体视图实现用户部分使用Celery完成发送判断帐号是否存在1.判断用户名是否存在后端接口设计:用户部分JWT什......
  • 影刀RPA实战:自动化批量生成条形码完整指南
    今天我们聊聊使用影刀来实现批量生成条形码,条形码在零售行业运用非常广泛,主要作用表现在产品识别,库存管理,销售管理,防伪保护等,这些作用使其成为现代商业和工业环境中不可或缺的工具,它极大地提高了数据处理的速度和准确性,降低了运营成本,并提高了整体的工作效率。影刀批量生成条......
  • ae软件_ae软件下载_完整版下载-AE模板 - AE2020软件包下载
    ae软件_ae软件下载_完整版下载-AE模板 - AE2020软件包下载...AE软件:从下载到精通的完全指南AdobeAfterEffects(简称AE)是一款功能强大的动态图形和视觉效果软件,广泛应用于电影、电视、广告等领域。无论你是初学者还是专业人士,掌握AE都能为你的创意作品增添无限可能。本文将为你详......
  • 利用ChatGPT完成2024 年高教社杯全国大学生数学建模竞赛题目【A/B/C/D/E题】完整思路
    利用ChatGPT来辅助数学建模比赛,可以帮助你加快建模、数据分析、算法设计等过程。以下是一些具体的步骤,结合ChatGPT的能力,如何在不同类型的数学建模问题中使用它。使用网站:https://new.chatgpt-plus.top/1.数据预处理与分析在数学建模比赛中,常常会遇到复杂的数据处......
  • 直接训练SNN:从LIF模型到MNIST分类的完整实战【含源码】
    我们计划使用原生Python代码直接训练SNN,并在相同的精度、超参数和网络结构下与SpikingJelly进行精度对比。以下是基准方法和相关教程的链接:时间驱动:使用单层全连接SNN识别MNIST—SpikingJellyalpha文档在直接训练SNN时,我们需要实现以下三个方面:LIF神经元:实现充电、......