BZOJ 3389--Cleaning Shifts安排值班(贪心)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BZOJ 3389--Cleaning Shifts安排值班(贪心)相关的知识,希望对你有一定的参考价值。

    日常刷水题。。。

题目链接:

    http://www.lydsy.com/JudgeOnline/problem.php?id=3389 

Solution

    每一只奶牛的空余时间都有一个 start 和 end 。。

    刚开始时间 t = 0 ,每一次取 start 小于或等于 t + 1 的牛当中end最大的一只,并更新 t 即可。

代码

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
using namespace std;
int N,T;
struct cow{
    int l,r;
}c[30000];
bool cmp(cow p,cow q){
    if(p.l==q.l) return p.r<q.r;
    return p.l<q.l;
}
int main(){
    int ans=0;
    scanf("%d%d",&N,&T);
    for(int i=1;i<=N;i++)
        scanf("%d%d",&c[i].l,&c[i].r);
    sort(c+1,c+1+N,cmp);
    int t=0,k=1;
    while(t<T&&k<=N){
        int s=t;
        while(c[k].l<=(t+1)&&k<=N){
            if(c[k].r>s) s=c[k].r;
            k++;
        }
        if(t==s) break;
        t=s;
        ans++;
    }
    if(t<T) ans=-1;
    printf("%d\n",ans);
    return 0;
}

  

  

This passage is made by Iscream-2001.

 

以上是关于BZOJ 3389--Cleaning Shifts安排值班(贪心)的主要内容,如果未能解决你的问题,请参考以下文章

vim编辑器 shift + $ 行尾,shift + ^ 行首

shift的用法和短语例句

利用键盘选定文本的快捷键

emacs 相当于 vim 的 shift-h 和 shift-l

shift+fn组合键失效,不需要按shift问题

理解 Keras 的 ImageDataGenerator 类中的 `width_shift_range` 和 `height_shift_range` 参数