描述
大表哥分配 N (1 <= N <= 25,000) 只中的一些奶牛在牛棚附近做些清洁。 他总是要让至少一只牛做清洁。他把一天分成T段(1 <= T <= 1,000,000), 第一段是1,最后一段是T

每只奶牛只在一些时间段有空。奶牛如果选择某一段时间,则必须完成整段时间的工作

你的任务是帮助FJ安排一些奶牛,使每段时间至少有一只奶牛被安排来做这件事。并且奶牛数应尽可能小。如果不可能办到,输出-1
输入
注意,输入包含多组测试数据,请处理到文件结束

  • 第一行:N和T
  • 第二行至N+1行: 每一行包括奶牛能工作的开始和结束时间。闭区间。
    输出
    *每组数据一行,输出完成清洁所需最少的奶牛数,如果不可能办到,输出-1
    样例输入
    3 10
    1 7
    3 6
    6 10
    样例输出
    2
    提示
    这道题输入数据很多,请用scanf而不是cin

输入说明

这里有3只奶牛和10个时间段cow #1 能在时间段1..7工作, cow #2 能在时间段3..6工作, cow #3 能在时间段6..10工作

输出说明:

选择 cows #1 和 #3即可,没有更优的方案了 .

AC代码:

include

include

include

using namespace std;
int t[1000005]; //t[i]表示以i开始的所有的牛中结束最晚的牛的值
int main(){
int N,T;
while(cin>>N>>T){
memset(t,-1,sizeof(t)); //初始化-1
while(N--){
int a,b;
scanf("%d%d",&a,&b);
if(t[a]<b) t[a]=b;
}
int len=0,las=0,s=0,plug=0;//plug标记量变为1则输出-1,w为0则输出s;s:贪心求解得出的最少奶牛数;len开始时间,las结束时间;
while(1){
int maxn=0,x; //maxn标记最大值,x标记取得最大值时的i
for(int i=las+1;i>len;i--){
if(t[i]>maxn) maxn=t[i],x=i;
}
if(maxn<=las) {
plug=1;
break;
}
s++;
len=x;
las=maxn;
if(las==T) break;
}
if(plug) printf("-1\n");
else printf("%d\n",s);
}
return 0;
}

直接贪心求解就好

poj2376Cleaning Shifts (贪心求解)的更多相关文章

  1. 【贪心】POJ2376-Cleaning Shifts

    [题目大意] 给出几个小区间和大区间,求覆盖整个大区间的最少小区间个数,如果不可能则输出-1. [思路] 这道程序写得我很不爽快,迷迷糊糊写完了,提交一遍AC了,可是我自己都没怎么弄懂到底是怎么写出来 ...

  2. POJ2376Cleaning Shifts(区间覆盖贪心)

    应该还是蛮简单的一题,但是因为模拟太差,一直没调出来....... \(显而易见的应该按照左区间从小到大排序,相等按照右区间大到小排序\). \(那么第一个区间的l一定要是1,而且必拿(否则没有区间能 ...

  3. POJ 2376 Cleaning Shifts 贪心

    Cleaning Shifts 题目连接: http://poj.org/problem?id=2376 Description Farmer John is assigning some of hi ...

  4. POJ - 2376 Cleaning Shifts 贪心(最小区间覆盖)

    Cleaning Shifts Farmer John is assigning some of his N (1 <= N <= 25,000) cows to do some clea ...

  5. poj 2376 Cleaning Shifts 贪心 区间问题

    <pre name="code" class="html"> Cleaning Shifts Time Limit: 1000MS   Memory ...

  6. 2018.09.12 poj2376Cleaning Shifts(线段树+简单dp)

    传送门 貌似贪心能过啊%%%. 本蒟蒻写的线段树优化dp. 式子很好推啊. f[i]表示覆盖1~i所需的最小代价. 那么显然对于一个区间[li,ri]" role="present ...

  7. POJ 2376 Cleaning Shifts (贪心,区间覆盖)

    题意:给定1-m的区间,然后给定n个小区间,用最少的小区间去覆盖1-m的区间,覆盖不了,输出-1. 析:一看就知道是贪心算法的区间覆盖,主要贪心策略是把左端点排序,如果左端点大于1无解,然后, 忽略小 ...

  8. [ACM_贪心] Radar Installation

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=28415#problem/A 题目大意:X轴为海岸线可放雷达监测目标点,告诉n个目标点和雷 ...

  9. 忙碌的Nova君 (活动安排问题、贪心算法)

    题目描述 理论上,Nova君是个大闲人,但每天还是有一大堆事要干,大作业啦,创新杯啦,游戏啦,出题坑人啦,balabala......然而精力有限,Nova君同一时间只能做一件事,并不能一心二用.假设 ...

随机推荐

  1. 《剑指offer》面试题18 树的子结构 Java版

    (输入两棵二叉树A和B,判断B是不是A的子结构.补充下,根据书中的代码来看,子结构的定义并不包括叶子节点下的null,也就是说只要B的存在数字的结构存在于A中就行,那么如果B是null树,那么就不属于 ...

  2. vmware 中标麒麟系统安装VM tools

    打开虚拟机系统,选择菜单虚拟机->安装VMware TOOLs,下载后找到文件. 我的文件名称是 VMwareTools-10.2.5-8068393.tar.gz, 在终端里输入:tar xv ...

  3. Codeforces 1058C(思维+最大公因数)

    题面 传送门 分析 引理1:三角形的面积\(\times 2\)一定是整数 由坐标系中的三角形面积公式 \[S=\frac{1}{2}(x_1y_2+x_2y_3+x_3y_1-x_1y_3-x_2y ...

  4. day20 博客系统开发

    setting 文件加入  AUTH_USER_MODEL = "app名称.UserInfo"     from django.db import models # Create ...

  5. Android客户端与Python服务器端通信之上传图片

    继上篇成功的与服务器端通信上之后,我现在需要将安卓本地的图片上传到服务端.服务端接收图片存下来. 参考:https://blog.csdn.net/qq_26906345/article/detail ...

  6. 剑指offer--字符串

    C/C++中每个字符串都以字符'\0'作为结尾,这样我们就可以很方便的找到字符串最后的尾部.由于这个特点,每个字符串中都有一个额外字符的开销,稍不留神就会造成字符串的越界. 为了节省内存,C/C++把 ...

  7. 如何在Linux下手动编译安装gcc

    如果可以通过apt来安装的话,尽量不要手工编译了,手工编译是最后的选择.用apt安装,只需要输入一条命令: sudo apt-get install gcc 手工编译的话,gcc和其他软件包存在如下的 ...

  8. 【转载】Mysql注入点在limit关键字后面的利用方法

      描写sql注入利用方法的文章数不胜数,本文将描述一种比较特殊的场景. 细节 在一次测试中,我碰到了一个sql注入的问题,在网上没有搜到解决办法,当时的注入点是在limit关键字后面,数据库是MyS ...

  9. 未来HTML5的发展前景如何?黑客专家是这样回答的

    如果你想进军IT行业,如果你准备好掌握一项新技术,那么就选择HTML5.近日,我们采访了国内知名网络黑客安全专家郭盛华,帮助您了解当今最重要的技术.在本篇文章中,黑客安全专家郭盛华回答了有关HTML5 ...

  10. maven 配置阿里云镜像

    编辑%maven_home%/conf/settings.xml文件,添加 <mirror> <id>aliyun-maven</id> <mirrorOf& ...