2018美团codeM资格赛题一(Python)

第一题的思路很简单,分为两步:

1、根据0/1判断是否为打折的商品,然后打折与不打折总和

2、使用优惠券的情况下,应该考虑m种,然后比较大小

最后两个方案得出最小价格。

有点坑的地方是,不能使用库,不能使用库,不能使用库!

题主开始用numpy一直出错,语法错误或越界访问。

n,m = (int(x) for x in input().strip().split())

a = []
b = []

for i in range(n):
    l1 = [int(x) for x in input().strip().split()]
    a.append(l1)

for i in range(m):
    l2 = [int(x) for x in input().strip().split()]
    b.append(l2)

# 选择优惠券
discount = 0.0 # 打折商品的价格
undiscount = 0.0 #不打折商品的价格
for d in range(n):
    if a[d][1] == 1:    #若等于1,则该商品打八折
        discount8 = float(a[d][0]) * 0.8
        discount += discount8
    else:
        undiscount += float(a[d][0])
discount_total = discount + undiscount

# 选择减满
total = 0.0
for i in range(n):
    total += float(a[i][0])

cost = []
for i in range(m):
    if total >= float(b[i][0]):
        value = total - float(b[i][1])
        cost.append(value)
    else:
        cost.append(total)

mincost = min(cost)
minvalue = 0.0
if discount_total > mincost:
    minvalue = mincost
else:
    minvalue = discount_total
print('%.2f' %minvalue)

最后结果通过:


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页