【打卡-蓝桥杯】Day 16

题目1:算法训练 寻找数组中最大值

在这里插入图片描述

解题思路

用内置函数max() 求最大值
用内置函数index() 找最大值索引

代码

n = int(input())
list = list(map(int, input().split()))
max = max(list)
index = list.index(max)
print(max, index)

题目2:算法训练 预测身高

在这里插入图片描述

解题思路

没啥好说的,判断求解,注意输出格式

代码

data = list(map(float, input().split()))

if data[0] == 0:
    ans = (data[1] * 0.923 + data[2]) /2
    print("%.3f" % ans)
else:
    ans = (data[1]+ data[2]) / 2 * 1.08
    print("%.3f" % ans)

题目3:算法训练 最大的算式

在这里插入图片描述

解题思路

动态规划,行列分别为 N个数和K个乘号
通式 :dp[i, j] = max(dp[i, j], dp[p, j - 1] * (dp[i, 0] - dp[p, 0]))

代码

n, k = map(int, input().split())
list = list(map(int, input().split()))
tmp = 0
dp = [[0 for _ in range(k+1)] for _ in range(n+1)]
for i in range(0, n):
    tmp += list[i]
    dp[i+1][0] = tmp
if k == 0:
    print(dp[n][k])
else:
    # 列 k个 *
    for j in range(1, k+1):
        # 行 N 个数
        for i in range(2, n+1):
            if j < i: # *需要小于 拿的数
                for p in range(1, i):
                    dp[i][j] = max(dp[i][j], dp[p][j-1]*(dp[i][0] - dp[p][0]))
    print(dp[n][k])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值