度小满笔试第二题

第一题的测试样例有点弱。直接print(9*(n-a+1)*(m-b+1))过了。
第二题暴力dp超时。过了18,不太清楚这道题能不能dp做。大佬们可以帮忙看看有什么问题吗,最后5分钟没来的及改成java,不知道java能不能过。

哭了,只能偷鸡。
N, A, B, C = map(int, input().split())
arr = list(map(int, input().split()))
# 到点i的最短的花费
dp = [float('inf')] * (N + 1)
# 起始点
dp[1] = 0
for i in range(N):
    # 直接到达某城市
    dp[arr[i]] = min(dp[arr[i]], A)
    # 从该点可以到达的城市,减少到该点后一个城市
    for k in range(i + 2, arr[i]):
        dp[k] = min(dp[k], (arr[i] - k) * B + A + dp[i + 1])

    # 从该点可以到达的城市,计算到第N个城市
    for k in range(arr[i] + 1, N + 1):
        dp[k] = min(dp[k], (k - arr[i]) * C + A + dp[i + 1])

print(dp[N])



#度小满##笔试题目#
全部评论

相关推荐

Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务