2019 牛客 6 J D 思维 暴力

J

n个武器, 每个武器都能升m级, 给出一个n*m的矩阵c, 第i行第j列代表i武器从j-1升到j级的花费(可能为负), 又给出一个长度为m的数组, 第i个数代表如果每个武器都升到i级(或以上), 就能获得这个奖励(可能为负), 问最多能得到多少钱.

可以发现, 如果升不到j-1级就到不了j级, 换句话说, 升到j级肯定取了前面所有的花费, 奖励的数组也是同理, 所以, 这个矩阵和数组都可以先求前缀和, 得到升到当前级的总花费(奖励).

枚举第\large l等级为最低等级, 就是说每个武器等级都必须>=这个等级. 那么就暂时不需要考虑奖励的问题, 每个武器i就可以贪c[i][l]c[i][m]中的最小值作为花费, 然后求和加上奖励就好了. 但是这样又会出现一个问题: 所有的武器都贪到超高的等级去了, 最低等级就发生了变化, 奖励就不是由我们枚举的l唯一确定了. 解决这个问题也是很简单的, 只需要枚举每个武器, 选一个倒霉蛋调回最低等级, 然后加上花费的差值即可. 下(xjb)证这样做是合理的: 他们不选最低等级(\large l)作为目标等级, 肯定是因为

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值