Kabaleo Lite

题意:有n盘菜,每盘菜有一定的利润和数量,每位顾客必须从第一盘菜上起,并且上的菜必须是连续的,即如果这盘上的是第i盘,则下一盘必是i+1,上一盘是i-1,问最多有多少个顾客能上菜,此时利润最大是多少?(英语不好,可能不是很准确)

比赛的时候一言难尽。。。英语不好只能机翻,翻出来并没有从第一盘开始这意思,我太难了。因为必须从第一盘菜上起,所以做多能上的数量即为第一盘菜的数量。

然后我们讨论如何得到最大利润,因为我们上的菜必须是连续的,所以获得的利润要用前缀和来计算,而且菜必须是连续的,所以一个最大利润的方案能进行的次数由这个方案中数量最少的菜决定。我们只需要对前缀和进行排序,因为排序默认排序条件相等时原来在前面的排完序后仍在前,而方案越长其执行数量一定小于等于方案短的执行数量,因此利润相同的方案我们只需执行长度最短的方案即可。

同时注意数据范围是1e91e51e5=1e19,已经超了,所以要用高精或 __int128或者java的大数类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值