技能升级-二分

这篇博客讨论了如何使用二分查找算法来优化解决一个RPG游戏中的技能升级策略问题。作者首先介绍了问题背景,即有多个技能可升级,每次升级攻击力提升遵循等差数列规则,目标是最大化总攻击力提升。接着,分析了暴力解法的不足,即时间复杂度过高。通过观察,作者提出可以二分搜索答案,并详细解释了二分查找的检查函数和利用等差数列性质计算有效升级次数的方法。最后,给出了实现代码。
摘要由CSDN通过智能技术生成
题目描述

小蓝最近正在玩一款 RPG 游戏。

他的角色一共有 N 个可以加攻击力的技能。

其中第 i 个技能首次升级可以提升 Ai 点攻击力,以后每次升级增加的点数都会减少 Bi。

⌈AiBi⌉(上取整)次之后,再升级该技能将不会改变攻击力。

现在小蓝可以总计升级 M 次技能,他可以任意选择升级的技能和次数。

请你计算小蓝最多可以提高多少点攻击力?

输入格式

输入第一行包含两个整数 N 和 M。

以下 N 行每行包含两个整数 Ai 和 Bi。

输出格式

输出一行包含一个整数表示答案。

数据范围

对于 40% 的评测用例,1≤N,M≤1000;

对于 60% 的评测用例,1≤N≤104,1≤M≤107;

对于所有评测用例,1≤N≤105,1≤M≤2×109,1≤Ai,Bi≤106。

输入样例:

3 6

10 5

9 2

8 1

输出样例:

47

题目分析
    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值