POJ 2376 - Cleaning Shifts(贪心)

【题解】POJ 2376 Cleaning Shifts(贪心) POJ 2376 Cleaning Shifts 原题 https://vjudge.net/problem/POJ-2376 农夫约翰指派他的N (1 <= N <= 25,000)头牛在谷仓周围做一些清洁杂务。他总是希望有一头牛来打扫卫生,他把一天分成了T班(1 <= T <= 1,000,000),第一个班是1班,最后一个班是T班。 每头牛只能在一天的某些时段进行清洁工作。任何被选来做清洁工作的牛都会在整个休息期间一直工作。 你的工作是帮助农民约翰分配一些奶牛轮班,这样( 阅读详情

Cleaning Shifts
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 9242 Accepted: 2461

Description

Farmer John is assigning some of his N (1 <= N <= 25,000) cows to do some cleaning chores around the barn. He always wants to have one cow working on cleaning things up and has divided the day into T shifts (1 <= T <= 1,000,000), the first being shift 1 and the last being shift T. 

Each cow is only available at some interval of times during the day for work on cleaning. Any cow that is selected for cleaning duty will work for the entirety of her interval. 

Your job is to help Farmer John assign some cows to shifts so that (i) every shift has at least one cow assigned to it, and (ii) as few cows as possible are involved in cleaning. If it is not possible to assign a cow to each shift, print -1.

Input

* Line 1: Two space-separated integers: N and T 

* Lines 2..N+1: Each line contains the start and end times of the interval during which a cow can work. A cow starts work at the start time and finishes after the end time.

Output

* Line 1: The minimum number of cows Farmer John needs to hire or -1 if it is not possible to assign a cow to each shift.

Sample Input

3 10
1 7
3 6
6 10

Sample Output

2

Hint

This problem has huge input data,use scanf() instead of cin to read data to avoid time limit exceed. 

INPUT DETAILS: 

There are 3 cows and 10 shifts. Cow #1 can work shifts 1..7, cow #2 can work shifts 3..6, and cow #3 can work shifts 6..10. 

OUTPUT DETAILS: 

By selecting cows #1 and #3, all shifts are covered. There is no way to cover all the shifts using fewer than 2 cows.

=============================

题意:一天分为T段,即1-T,有N头牛,从中选出一头或几头牛使至少每段都有一头牛工作,求所需牛数的最小值,不能做到输出-1


简单贪心。以开始时间为关键字进行排序,每次选择可以和上个结束时间相连接的、结束时间最晚的牛,若不能连接直接输出-1

给出几组数据:

3 10

2 4

3 6

7 10

输出-1

----------

3 10

1 4

4 7

7 9

输出-1

----------

3 10

1 10

2 3

4 5

输出1

---------

3 10

1 3

4 6

7 10

输出3


#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

struct cow
{
    int st;
    int ed;
}a[25555];

bool cmp(cow a,cow b)
{
    return a.st<b.st;
}

int main()
{
    int n,t,et=0,MAX=-1,p,ans=0;
    scanf("%d%d",&n,&t);
    for(int i=0;i<n;i++)
        scanf("%d%d",&a[i].st,&a[i].ed);
    sort(a,a+n,cmp);
    for(int i=0;i<n;i++)
    {
        if(a[i].st>et+1)
        {
            printf("-1\n");
            return 0;
        }
        while(a[i].st<=et+1&&i<n)
        {
            if(a[i].ed>MAX)
            {
                MAX=a[i].ed;
                p=i;
            }
            i++;
        }
        i--;
        et=a[p].ed;
        ans++;
        if(et>=t) break;
    }
    if(et<t) printf("-1\n");
    else printf("%d\n",ans);

    return 0;
}



poj 2376 解题报告 这是我发的第二篇解题报告,写的不怎么的。呵呵!!!!! 立即下载

相关推荐

本地部署ComfyUI:开源AI生图与视频生成完整实战指南

在生成式AI应用快速普及的今天,云端工具常受制于排队、积分和素材管理等问题,而本地化部署正成为开发者与创作者的高效替代方案。其核心思路是基于开源工作流引擎,将图像生成、视频生成与后期处理整合到同一套可离线运行的系统中。ComfyUI作为当前最受关注的节点式工作流平台,凭借灵活的模块组合和强大的自定义能力,降低了从图像模型调用到视频扩展的工程门槛。本文从环境配置与依赖安装入手,系统讲解如何部署ComfyUI、加载Checkpoint模型、跑通文生图基础流程,再通过自定义节点接入视频生成能力,同时介绍API批量

weixin_30985047的博客 577

POJ 2376 (区间问题,贪心)

题目链接:http://poj.org/problem?id=2376 题目大意:选择一些区间使得能够覆盖1-T中的每一个点,并且区间数最少 题目分析:这道题目很明显可以用贪心法来解决。但题目没有看起来那么简单,有许多的坑。 我的贪心策略如下: 1.将区间按照起点排序,并且保证起点相同的,终点大的排在前边 2.在前一个选取的区间范围[L0,R0+1]中,选取起点在此范围但终点最靠右的一个...

weixin_30569033的博客 194

Lumerical官方案例、FDTD时域有限差分法仿真学习(三)——环形谐振器(Ring resonator)之第一部分

环形谐振器教程的第 1 部分使用 MODE 来设计和仿真环形谐振器。 自由光谱范围 (FSR) 和品质因数 (Q 因数) 是这种面向片上通信应用的基于绝缘体上硅 (SOI) 波导设计的关键性能指标。

weixin_45719141的博客 3万+

poj2376 java_贪心算法—-区间覆盖问题(POJ2376)

题目:题目的大概意思是约翰这个农民有N条牛,这些牛可以在一天中的某个时间段可以进行工作,他想把这个时间段分成若干个片段让这些牛去进行打扫任务,你的任务是安排尽量少的牛然后可以完成分成这些片段的打扫任务。输入:第一行两个数,第一个数代表牛的个数N,第二个数代表时间T,表示的是时间段[1,T]。下面的N行每行表示牛工作的时间段。输出:输出使用最少的牛的数量。思路分析:这道题目完全就是一个区间覆盖问题的...

weixin_32251071的博客 559

STM8S全解析之系列文章4---STM8S芯片项目升级引导程序(使用中断接收升级数据)

STM8S全解析之系列文章4—STM8S芯片项目升级引导程序(使用中断接收升级数据) 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录STM8S全解析之系列文章4---STM8S芯片项目升级引导程序(使用中断接收升级数据)前言一、Flash划分boot和App二、使用步骤1.引入库2.读入数据总结 前言 用过STM8S都知道它没有中断向量重定向,也就意味着STM8S的中断向量没办法指向其他的位置,间接说明升级的引导

weixin_39853312的博客 1031

大型我的世界RPG服务器开服全攻略:从环境配置到插件部署

搭建一个能支撑百人稳定在线的我的世界服务器,远不止选择服务端和安装插件那么简单。服务器架设涉及硬件选型、Java环境、端口放行、启动脚本与systemd守护等基础环节,而大型RPG玩法还依赖MythicMobs、Quests、LuckPerms等插件协同工作。理解这些技术组件的原理与配置逻辑,是确保长线运营的关键。对于希望打造原创剧情、职业副本和自定义Boss的团队而言,合理规划MySQL数据库、RCON批量管理及性能调优,能显著降低后期维护成本。本文围绕RPG服务器核心能力,从环境准备到插件部署,再到常见

weixin_27230891的博客 370

poj 2376(区间覆盖)

题目链接:http://poj.org/problem?id=2376 题目大意:有若干头牛,每一头牛都有自己的工作时间段(称为小区间),现有一个给定的总工作时间段(称为大区间),要求用最小的小区间数来覆盖大区间并输出区间数 分析:该问题的原型就是区间覆盖问题,首先要对输入的数据进行排序,排序的标准是:每个区间的开始时间升序,然后开始处理数据,每次都贪心的选取最长的时间段即可,       

坚持迟早会有收获的!!! 399

ROST_CM6软件之词频分析、社会网络和语义网络分析、情感分析

简介 ROST CM 6是武汉大学沈阳教授研发编码的国内目前唯一的以辅助人文社会科学研究的大型免费社会计算平台。该软件可以实现微博分析、聊天分析、全网分析、网站分析、浏览分析、分词、词频统计、英文词频统计、流量分析、聚类分析等一系列文本分析。 社会网络和语义网络分析(S) 数据 注意,保存时编码要为ANSI 所以这里需要转换一下 准备自定义表与停词表 例如 同时,点击快速分析后,将会弹出网络图 对网络图进行设置 对布局进行设置 对节点、边进行设置 最终效果图 修改 情感分析

积一时之步,臻千里之遥程 9万+

POJ2376 Cleaning Shifts

POJ2376 Cleaning Shifts (贪心经典例题:区间覆盖问题) 基本的贪心问题:给几段区间,用最少的区间覆盖一个特定区间,求解最小的区间数 基本思路:将所有区间存入一个结构体中,按照其左端点从小到大排序,若两区间左端点大小相同,则按照右端点从大到小排序(因为两区间若左端点相同选择覆盖更多的区间显然更合算) 即在操作时:设变量end代表当前覆盖到那个点了,设变量need,并令其need=end+1(假设end覆盖了1~10,则我们下一步需要有区间能够覆盖end+1及以后);同时循环条件为覆盖到

m0_50647144的博客 198

《生化危机9:安魂曲》D加密免BIOS破解方案详解

数字版权管理(DRM)技术通过加密手段保护软件版权,Denuvo(D加密)作为主流方案常应用于3A游戏。其原理是通过实时验证机制阻止未授权访问,但可能影响性能表现。本文以《生化危机9》为例,解析一种免BIOS修改的D加密绕过方案,该方案通过授权启动器模拟正版验证流程,保持系统零侵入性。实测表明,该方法在GTX 1060至RTX 3070等多硬件平台均能稳定运行,支持MOD扩展且兼容Reshade画质增强,为玩家提供开箱即用的绿色版体验。

weixin_33898233的博客 925

拆解博世、大陆的EMB方案:自增力机构如何省下83%的能耗?

本文深度解析了博世和大陆的电子机械制动(EMB)技术,重点探讨了自增力机构如何实现83%的能耗节省。通过对比电机直驱型和自增力型EMB的技术参数,揭示了自增力机构在能量优化和系统集成方面的创新优势,为汽车电动化和智能化提供了关键技术支持。

weixin_42665725的博客 394

POJ-2376 || 区间覆盖

区间覆盖 描述 数轴上有 n (1<=n<=25000)个闭区间 [ai, bi],选择尽量少的区间覆盖一条指定线段 [1, t]( 1<=t<=1,000,000)。 覆盖整点,即(1,2)+(3,4)可以覆盖(1,4)。 不可能办到输出-1 输入 第一行:N和T 第二行至N+1行: 每一行一个闭区间。 输出 选择的区间的数目,不可能办到输出-1 样例输入 3 10 1 ...

人生如逆旅,我亦是行人 472

Windows 11 安装 JDK 21:下载、安装、配置环境变量、验证

本文详细介绍了在 Windows 11 系统中安装 JDK 21 的完整流程,包括从 Oracle 官网下载压缩包、解压至自定义目录、配置 JAVA_HOME 与 Path 环境变量,并验证安装是否成功。文章推荐使用 ZIP 压缩包而非安装程序,以实现绿色便携、多版本共存等优势,并通过一个包含 Java 21 新特性的示例程序进行功能验证,适合开发者快速上手。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2518

POJ 2376 Cleaning Shifts 贪心

来源:http://poj.org/problem?id=2376 题意:有一些奶牛,每只奶牛负责一个时间段。问覆盖完全部的时间段最少需要多少只奶牛。若不能全部覆盖,输出-1. 思路:类似于区间覆盖的问题,明知道用贪心求解,但是还是wa了好几次。首先这道题有一个需要注意的就是每次不需要从上一只的结束点开始,可以从上一只结束的下一个点开始。比如说第一只的时间段是1 3,则第二只可是是4 7。首先

5237

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

POJ 2376 Cleaning Shifts 简单的贪心

题目链接: 【POJ—2376 Cleaning Shifts】 题目大意:一堆区间,用最少的区间覆盖整个区间。好吧其实我本来打算用动态规划的,但是区间太长了(10^6)。so。。。老老实实用贪心。 这次总算长记性了,自己多试了几组数据,没有起点的,没有终点的,不过注意一点:(1,5)(6,10)这样的区间是连续的。

ChenyangDu的博客 475

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

POJ2376 Cleaning Shifts 贪心

这题贪心法,首先按照每头牛

LoveKobe_的专栏 539

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

贪心——POJ2376 Cleaning Shifts

题目描述: http://poj.org/problem?id=2376 Cleaning Shifts Time

点滴 554

POJ2376贪心Cleaning Shifts

Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64u Description Farmer John is assigning some of his N (1 <= N <= 25,000) cow

逝水流年轻染尘 757

POJ 2376 Cleaning Shifts【题解】贪心

题面:http://poj.org/problem?id=2376 和luogu的题面有不同,并不是询问最小的代价。 而是询问最小点数。 那么就可以用贪心解决了。 代码如下: #include<cstdio> #include<algorithm> #define int long long #define ll long long usin...

dazhishu2366的博客 112

POJ 2376 Cleaning Shifts(贪心)

题目地址:http://poj.org/problem?id=2376 思路:起点为1的选一个最大的,剩下的放到结构体中,排序一下贪心就行 AC代码: #include #include #include #include #include #include #include #include #include #include #include const int i

Java识堂,一个有干货的微信公众号 383

POJ - 2376 Cleaning Shifts(贪心)

题目链接:http://poj.org/problem?id=2376点击打开链接 Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23408   Accepted: 5853 Description Farmer Jo

xuejye的博客 347

[贪心] poj 2376 Cleaning Shifts

题意: 给n个线段,问你覆盖满[1,T]内的每个点,最少需要多少条线段。 思路: 贪心,按照x坐标升序,y坐标降序排。 默认先放入第一条。 然后根据从属关系继续放线段。 注意的一点是 [1,2]和[3,4]就可以覆盖满[1,4]了。 然后注意因为默认放入了第一条,所第一条的状态要特判。 包括 第一条如果是[1,T]的话 输出1. 代码: #include"cstdlib" #i

Enmity_Dark 688

POJ 2376 Cleaning Shifts 【贪心 区间】

Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14669   Accepted: 3730 Description Farmer John is assigning some of his N (1 <= N <= 25,000

wyjwyl的专栏 1277

POJ_2376_Cleaning Shifts(贪心)

题意:农夫有N头牛。现在他想让一些牛去做家务。然后他把一天分成T个时间点,也就是一天的时间点是区间[1,T]。他想要任何一个时间点都有牛在做家务。现在给出每头牛的工作时间,问你能否用最少的牛满足他的要求,即用最少的时间段覆盖掉这一天([1,T])。如果不能满足则输出-1,否则输出最少的牛数量。

一点也不二 4878

POJ 2376 Cleaning Shifts [贪心]

POJ 2376 Cleaning Shifts题目大意给一个1..T的区间,然后N个子区间,取最少的把这个区间填满,求这个最小值算法以区间开始为关键字升序排序,如果左边不能覆盖,那肯定就不行。这样就选好了最开始的一块。那当然是选所以1开头的右边区间最大的一块。第二块就是在这1..y+1中再找个右边最大的一块,然后不断更新。如果找不到,那就不能填满,当全部找完以后,再判断能不能填满code#incl

more time 589
上一篇: POJ 2718 - Smallest Difference(穷竭搜索)
下一篇: POJ 1328 - Radar Installation(贪心)
coco430
博客等级 码龄14年 9粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值