2023哈理工蓝桥杯模拟练习赛——猴王Kiki分桃

[原题链接)登录—专业IT笔试面试备考平台_牛客网 

        为了区分小写l与1,以下所有的l均采用大写形式。

        Kiki最少要拿k=L个桃,所以我们要分析kiki在拿了L个桃以后到底还要不要继续拿桃子,如果要继续拿,到底要拿多少个才能使kiki得到的桃子最多。 我们可以想到,这道题的本质不就是看[L,r]这个区间是否存在n的倍数。

                (1)如果存在,设该n的倍数为dn,那么区间[L,r]一定能取到dn-1,使得Kiki得到的奖励桃为n-1个。

                (2)如果不存在,说明[L,r]区间长度小于n,且[L, r]区间在n的两相邻倍数区间内(拿笔一画就能清晰明白),由此可得(L % n)+ (r - L)  < n,这时Kiki得到的奖励桃数量与k的取值成正相关,k越大,奖励桃数量越多,而k属于[L,r],所以当 k =  r 时,Kiki得到的奖励桃最多,为:(L % n)+(r - L)。

                 对于以上两种情况,我们只需要判断(L / n)与(r / n)是否相等,相等则表示在同一区间,不相等则不在。

C代码示例:

#include <stdio.h>
int main(){
    
    int n,l,r;
    scanf("%d %d %d",&n,&l,&r);
    
    if(l/n==r/n){
        printf("%d",l%n+r-l);    
    } else {
        printf("%d",n-1);
    }
    return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值