zoukankan      html  css  js  c++  java
  • [BZOJ1651][Usaco2006 Feb]Stall Reservations 专用牛棚

    1651: [Usaco2006 Feb]Stall Reservations 专用牛棚

    Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 990  Solved: 568 [Submit][Status][Discuss]

    Description

    Oh those picky N (1 <= N <= 50,000) cows! They are so picky that each one will only be milked over some precise time interval A..B (1 <= A <= B <= 1,000,000), which includes both times A and B.  Obviously, FJ must create a reservation system to determine which stall each cow can be assigned for her milking time. Of course, no cow will share such a private moment with other cows.  Help FJ by determining: * The minimum number of stalls required in the barn so that each   cow can have her private milking period * An assignment of cows to these stalls over time 

    有N头牛,每头牛有个喝水时间,这段时间它将专用一个Stall 现在给出每头牛的喝水时间段,问至少要多少个Stall才能满足它们的要求

    Input

    * Line 1: A single integer, N

    * Lines 2..N+1: Line i+1 describes cow i's milking interval with two         space-separated integers.

    Output

    * Line 1: The minimum number of stalls the barn must have.

      * Lines 2..N+1: Line i+1 describes the stall to which cow i will be         assigned for her milking period.

    Sample Input

    5
    1 10
    2 4
    3 6
    5 8
    4 7

    Sample Output

    4


    OUTPUT DETAILS:

    Here's a graphical schedule for this output:

    Time     1  2  3  4  5  6  7  8  9 10
    Stall 1 c1>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Stall 2 .. c2>>>>>> c4>>>>>>>>> .. ..
    Stall 3 .. .. c3>>>>>>>>> .. .. .. ..
    Stall 4 .. .. .. c5>>>>>>>>> .. .. ..

    Other outputs using the same number of stalls are possible.
     
    问的就是被区间覆盖次数的最大值,用查分数组维护覆盖,然后扫一遍计算答案
    #include <cstdio>
    inline int readint(){
        int n = 0;
        char ch = getchar();
        while(ch < '0' || ch > '9') ch = getchar();
        while(ch <= '9' && ch >= '0'){
            n = (n << 1) + (n << 3) + ch - '0';
            ch = getchar();
        }
        return n;
    }
    template <typename _Tp>
    inline _Tp max_(const _Tp &a, const _Tp &b){
        return a > b ? a : b;
    }
    int cnt[1000001] = {0}, n;
    int main(){
        n = readint();
        int r = 0;
        for(int s, t, i = 1; i <= n; i++){
            s = readint();
            t = readint();
            cnt[s] ++;
            cnt[t + 1] --;
            r = max_(r, t);
        }
        int sum = 0, ans = 0;
        for(int i = 1; i <= r; i++){
            sum += cnt[i];
            ans = max_(ans, sum);
        }
        printf("%d
    ", ans);
        return 0;
    }
  • 相关阅读:
    前端登录,这一篇就够了
    JS 之跨域问题汇总
    一篇搞定(Js异步、事件循环与消息队列、微任务与宏任务)
    在vue-cli@3.X中配置代理解决开发环境的跨域问题的同时解决cookie问题--Cookies 解决方案
    多包管理工具lerna
    js中的事件监听(冒泡和捕获)
    js事件监听/鼠标滚轮/行为/冒泡/键盘的兼容性写法
    详解clientHeight、offsetHeight、scrollHeight
    Css背景渐变
    CSS生成内容
  • 原文地址:https://www.cnblogs.com/ruoruoruo/p/7506265.html
Copyright © 2011-2022 走看看