【打卡-蓝桥杯】Day 17

题目1:算法训练 最小乘积(基本型)

【打卡-蓝桥杯】Day 17_第1张图片

解题思路

这题就是,用内置函数,一个数组升序,一个数组降序,对应位置相乘

代码

t = int(input())
for _ in range(t):
    ans = 0
    n = int(input())
    arr1 = list(map(int, input().split()))
    arr2 = list(map(int, input().split()))

    numList1 = sorted(arr1)
    numList2 = sorted(arr2, reverse=True)

    for i in range(n):
        ans += numList1[i] * numList2[i]
    print(ans)

题目2 :算法提高 幸运顾客

【打卡-蓝桥杯】Day 17_第2张图片

解题思路

定义两个数组,分别代表 获奖列表和 抽奖号列表
定义 day 记录第i天
判断 为 -1 ,day+1,排序取第i大的数是幸运顾客
不为 -1 ,将数据加入抽奖号列表中

代码

n = int(input())
res = []
arr = []
day = 0

for i in range(n):
    data = int(input())
    if data != -1:
        arr.append(data)
    else:
        arr.sort()
        res.append(arr[day])
        day += 1
for _ in res:
    print(_)

你可能感兴趣的:(蓝桥杯,蓝桥杯,算法,python)