Convention 题解

题面:

在这里插入图片描述

题目翻译:

农夫约翰要用M(1 <= M <= 105)辆车来接送N(1 <= N <= 105)头牛,每辆车最多可以装C(1 <= C <= N)头牛.
某头母牛的到达机场的时间和它所乘坐的汽车离开的时间的差值为它所等待的时间.
如何能够让等得最久的一头牛的等待时间最短.
输出最短的等待时间.

题目分析:

首先将每头牛的到达时间从小到大排序.
从一头牛到达,直到他所乘坐的车离开的时间为它的等待时间.
可以先假设一个时间x.
如果一辆车在时间为t时搭了一头牛,那么这辆车就会在时间t+x离开.
所以每辆车只能搭载到达时间在t~t+x之间的牛,并且最多只能承载c头牛.
用二分法找出一个时间x.使得能够不多不到恰好搭载所有的牛.

代码:

#include<bits/stdc++.h>

long left = 0, right = 1e9, c, n, m, mid;
long cow[1000100];

bool check(long time){
    long shangche = 0;
    for(long i = 1; i <= m; ++i){
        long cows = 0;
        long first = cow[shangche];
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值