动态规划
星空皓月
工欲善其事,必先利其器。
展开
-
LeetCode:746. 使用最小花费爬楼梯【动态规划】
经典动态规划题,要求到楼顶的最低花费,首先要求到达楼顶前的两层花费,要求这两层的花费,则需要知道这两层的前两层的花费…假设dp[i]表示第i层的最低花费,需要知道第i-1层和第i-2层的消费那层更少,再加上第i层的消费。于是dp[i]=min(dp[i-1],dp[i-2])+cost[i]。...原创 2022-08-01 19:03:39 · 151 阅读 · 0 评论 -
乐山师范程序设计大赛2020-E: 分石头【01背包】
题目描述你有n个重量已知的石头W1,…,Wn。你的任务是:将石头重新分成两堆,使两堆之间的重量之和差异最小。输入第一行,输入石头的个数n(1≤n≤60)第二行,输入n个石头的重量W1,…,Wn(正整数,1≤Wi≤100000)。输出输出一个数字,表示分成两堆后的石头之和可能存在的最小重量差。样例输入55 8 13 27 14样例输出3提示只有分成这样两堆,第一堆的和为35,第二堆的和为32,所以重量差值为3第一堆:8 13 14第二堆:5 27思路要让一堆尽量平均分为两堆原创 2020-12-19 17:43:21 · 321 阅读 · 1 评论 -
CF - E95(div2) -- C. Mortal Kombat Tower【DP】
题意你和你的朋友去通过一个挑战塔,这个挑战塔有n层,每层有挑战等级(ai = 0表示容易,ai=1表示困难),你的朋友只能通过容易的层数,困难等级的只能跳过,而你都可以通过。你和你的朋友只能挑战1层或者两层,只能连续挑战不能跳越层数挑战,你和你的朋友来回调整。最开始的回合数是你朋友,挑战n层,问你的朋友跳过的次数。思路你的回合对答案没有贡献,而只有你的朋友对答案有贡献,然后就是一个简单的dp问题,详细请看代码备注。AC代码#include<bits/stdc++.h>usin原创 2020-09-15 19:55:20 · 130 阅读 · 0 评论