区间贪心-

0x00 题目地址

Problem - 2037 (hdu.edu.cn)

0x01 分析

要尽可能的多看节目,那么就要每一步都选择结束时间最短的,这样就可以留下尽可能多的时间去看别的节目。

因此也就是将各个节目的结束时间从早到晚排好序。

然后依次判断节目是否可以观看:

①当前节目是否已经开始,如果开始了,就接着寻找下一个还没开始的节目。

然后更新当前的时间为找到的节目的截止时间。

0x02 完整代码

复制代码
#include <iostream>
#include <vector>
#include<algorithm>
using namespace std;
struct programe {
    int id;
    int startTime;
    int endTime;
    programe(int id, int startTime, int endTime) :id(id), startTime(startTime),endTime(endTime){}
};

bool compare_pro(programe A, programe B) {
    return A.endTime <  B.endTime;
}


// 测试函数
int main() {
    int n = 0;
    while (cin >> n) {
        vector<programe> case_vector(n);
        int startTime = 0;
        int endTime = 0;
        for (int i = 0; i < n; i++) {
            cin >> startTime >> endTime;
            programe temp(i, startTime, endTime);
            case_vector.push_back(temp);
        }

        sort(case_vector.begin(),case_vector.end(),compare_pro);

        int currentTime = 0;
        int count = 0;
        for (int i = 0; i < n; i++) {
            if (case_vector[i].startTime >= currentTime) {
                count++;
                currentTime = case_vector[i].endTime;
            }

        }

        cout << count << endl;

    }
    return 0;
}
相关推荐
mjhcsp16 分钟前
Code date creation v8.0 竞赛数据生成与对拍实战指南
算法·ai·深度优先·cdc
小郎君65837 分钟前
keep-alive 页面怎么“真刷新”?别改外层 key——一个 refreshVersion 的完整实现
vue.js·算法
瑶池酒剑仙1 小时前
C++变量初始化五法完全指南:默认/拷贝/直接/列表/值初始化与窄化转换陷阱(青云之志)
c语言·开发语言·数据结构·c++·算法·visual studio
用户238003099451 小时前
从零开始实现扫雷游戏(C 语言控制台版)
算法
国科安芯1 小时前
星上计算的第一道防线:低轨遥感卫星载荷处理链中的AS32S601型抗辐射MCU—— 面向高分辨率成像与在轨智能处理的场景化综述
大数据·网络·人工智能·单片机·算法·低轨卫星·抗辐射
thusloop2 小时前
零门槛接入 GPT-6-astra 与 claude-opus-5-5,三大场景实战指南
python·gpt·算法·agent·claude·codex
瓦瓦gogo2 小时前
学回溯算法时,我先弄明白了怎么“退回来”
算法
Lzg_na2 小时前
堆和堆排序
算法
TK泰妞2 小时前
TikTok 带货视频如何做多语言本地化?从翻译脚本到重做场景的实用方法
算法·音视频
房开民2 小时前
DDPM 完整原理 + 全套公式串联
算法