2020牛客暑期多校训练营(第八场)K.Kabaleo Lite(贪心,高精)

题目链接

思路:

对盈利做个前缀和然后从大往下取,每次取的时候增加的人数是当前的前缀和的最小值减去已经得到的人数。注意数据很大需要用到高精(所以我们用python,手动滑稽)。

代码:

t=int(input())
for i in range(t):
    n=int(input())
    a=list(map(int,input().split()))
    b=list(map(int,input().split()))
    mn=b[0]
    ans=a[0]*b[0]
    sum=mx=a[0]
    for j in range(1,n):
        mn=min(mn,b[j])
        sum+=a[j]
        if sum>mx:
            ans+=(sum-mx)*mn
            mx=sum
    print('Case #{}: {} {}'.format(i+1,b[0],ans))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值