POJ 3190 Stall Reservations(牛棚挤奶问题)详细代码解读

 

POJ 3190 Stall Reservations(牛棚挤奶问题)详细代码解读_第1张图片

一.解题思路
Step 1:定义 cow 结构体
Step 2:定义 stall 结构体
Step 4:主函数
     4.1 读取输入并存入 cows 向量
     4.2 先排序 cows
     4.3 处理第一头牛
     4.4 遍历剩下的牛
     4.5 复用牛棚 or 创建新牛棚
     4.6 输出结果
     

二.详细代码解读

#include 
#include  
#include 
#include 
using namespace std;

const int MAXN = 50005;  // 定义最大牛的数量,假设最多有 50000 只牛

// 牛的结构体,包含牛的开始时间、结束时间和原始位置(即输入时的顺序)
struct cow {
    int start;  // 牛进入牛棚的开始时间
    int end;    // 牛离开的结束时间
    int index;  // 牛的原始位置(为了输出时按输入顺序)
    
    cow(int s, int e, int ori) : start(s), end(e), index(ori) {}  // 构造函数初始化成员变量

    // 重载 < 运算符,按照开始时间对牛进行排序
    bool operator<(const cow &A) const {
        re

你可能感兴趣的:(算法学习,贪心算法,c++,堆,POJ,3190)