• GRYZY #8. 公交车


    公交车(bus)

    Time Limit:1000ms Memory Limit:128MB

    题目描述

    LYK在玩一个游戏。

    有k群小怪兽想乘坐公交车。第i群小怪兽想从xi出发乘坐公交车到yi。但公交车的容量只有M,而且这辆公交车只会从1号点行驶到n号点。

    LYK想让小怪兽们尽可能的到达自己想去的地方。它想知道最多能满足多少小怪兽的要求。

    当然一群小怪兽没必要一起上下车,它们是可以被分开来的。

    输入格式(bus.in)

    第一行三个数k,n,M。
    
    接下来k行每行3个数xi,yi和ci。其中ci表示第i群小怪兽的小怪兽数量。

    输出格式(bus.out)

    一个数表示最多有多少只小怪兽能满足要求。 

    输入样例

    3 5 3

    1 3 4

    3 5 2

    1 5 3

    输出样例

    5

    样例解释

    第一群的3只小怪兽在1号点上车,并在3号点下车。

    第二群的2只小怪兽在3号点上车,5号点下车。

    数据范围

    对于30%的数据小怪兽的总数不超过10只,n<=10。

    对于另外30%的数据k,n<=1000。

    对于100%的数据1<=n<=20000,1<=k<=50000,1<=M<=100,1<=ci<=100,1<=xi<yi<=n。

    很容易可以看出此题可以转化成线段覆盖问题

    然后每次暴力修改区间球可以,因为数据水,你也可以某些数据结构优化

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int maxn = 50005;
    int k,n,m;
    struct node{
        int h,t,num;
        bool operator < (const node & a)const {
            return t<a.t;
            return h<a.t;
        }
    }edge[maxn];
    int peo[maxn];
    int main () {
        scanf("%d%d%d",&k,&n,&m);
        for(int i=1;i<=k;++i) {
            scanf("%d%d%d",&edge[i].h,&edge[i].t,&edge[i].num);
        }
        sort(edge+1,edge+k+1);int ans=0;
        for(int i=1;i<=k;++i) {
            if(edge[i].t>n)break;
            if(peo[edge[i].h]>=m)continue;
            int minn=0x7fffffff;
            for(int j=edge[i].h;j<=edge[i].t;++j){minn=min(m-peo[j],minn);if(minn<=0)break;}
            if(minn>0) {
                if(minn>=edge[i].num) { 
                    for(int j=edge[i].h;j<edge[i].t;++j)peo[j]+=edge[i].num;
                    ans+=edge[i].num;
                }
                else {
                    for(int j=edge[i].h;j<edge[i].t;++j)peo[j]+=minn;
                    ans+=minn;
                }
            }
        }
        printf("%d
    ",ans);
        return 0;
    }
  • 相关阅读:
    JZOI 4020 Revolution
    JZOJ 4018 Magic
    JZOJ 4017 逃跑
    JZOJ 4016 圈地为王
    JZOJ 4015 数列
    JZOJ 3960 鸡腿の出行
    BZOJ 5005 & JZOI 3959 鸡腿の乒乓
    GCJ2009B&JZOJ 4033 Min Perimeter
    jzoj 3948 Hanoi 塔
    [纯符][纯粹的无聊] 神奇的递推式
  • 原文地址:https://www.cnblogs.com/sssy/p/7693183.html
Copyright © 2020-2023  润新知