NOIP2016普及组初赛题目整理

博客主要介绍了NOIP2016普及组初赛的一道题目,涉及利用二分搜索算法解决学生租用自行车的问题。题目要求在给定的总经费和每位同学携带的金额下,通过贪心算法判断最多能有多少名同学租到自行车。文章提供了二分搜索模板,并解释了检查函数check(int nn)的实现细节,该函数用于判断前nn个同学能否租用自行车。
摘要由CSDN通过智能技术生成

完善程序

(郊游活动)有 n 名同学参加学校组织的郊游活动,已知学校给这 n 名同学的郊游总经费为 A 元,与此同时第 i 位同学自己携带了 Mi 元。为了方便郊游,活动地点提供 B(≥n)辆自行车供人租用,租用第 j 辆自行车的价格为 Cj元,每位同学可以使用自己携带的钱或者学校的郊游经费,为了方便账务管理,每位同学只能为自己租用自行车,且不会借钱给他人,他们想知道最多有多少位同学能够租用到自行车。(第四、五空 2.5 分,其余 3 分)
本题采用二分法。对于区间[l, r],我们取中间点 mid 并判断租用到自行车的人数能否达到 mid。判断的过程是利用贪心算法实现的。

#include <iostream>
using namespace std;
#define MAXN 1000000
int n, B, A, M[MAXN], C[MAXN], l, r, ans, mid;
bool check(int nn) {
   
    int count = 0, i, j;
    i = 1;
    j = 1;
    while (i <= n) {
   
        if (2)
            count += C[j] - M[i];
        i++;
        j++;
    }
    return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值