zju 1503 One Person "The Price is Right"
摘要: 1503 估价游戏,一个决策为背景的 DP,当前剩下 i 次机会和 j 条命,最优的策略可以覆盖 DP[i][j] 范围内的所有情况,那么DP[0][j] = 0, DP[i][0] = i, DP[i][j] = DP[i-1][j-1] + 1 + DP[i-1][j]。
阅读全文
hdu 1500 Chopsticks
摘要: 参考了下别人的代码,dp真是千变万化啊!
这与搬寝室还是有很大不同的,要倒过来做;
dp[物品组数][物品个数](I为I副筷子,J为总共筷子)
现在转入正题,这个题目要求每一组有3个筷子,前2个的差的平方最小,
首先和前面题目一样先排序对把,显然从大到小排(因为这样完全可以转化成搬寝室 那个一样的思想)
比如取第2队物品,那么第一对已经取完保存在数组里面了,
那么从s[2][3*2+1]计算到s[2][n],
为什么这样就可以呢?
仔细想下,第2组,前面只要有2个可以作为最大的筷子了,一定满足题目意思的了,所以一直计算下去,
状态转移方程和前面一样~
dp[i][j]=min(dp[i-1][j-2]+(a[j]-a[j-1])*(a[j]-a[j-1]),dp[i][j-1]);
ps:排序从大到小很精妙~
阅读全文
hdu 1421 搬寝室
摘要: 由于数据还是比较大的,初始化时一定要足够大,很容易错!
dp[i][j] 从前i个物品中选取j对物品。
阅读全文
hdu 2670 Girl Love Value
摘要: dp[i][j] 从前i个人中选j个的最优值。
底层为从前i个选1个。
阅读全文
hdu 2059 龟兔赛跑
摘要: 在同学的悉心教导之下总算做对了,虽然还不是很懂~
阅读全文
hdu 1159 Common Subsequence 最大公共子序列
摘要: dp[i][j]记录第一个串的前i个字符与第二个串的前j个字符的最大公共子序列的个数。
阅读全文
hdu 2512 一卡通大冒险
摘要: 当被分成一堆和n堆的时候都只有一种情况,要在实现初始化。
重要的推导:dp[i][j] = (dp[i-1][j-1] + dp[i-1][j] * j)
阅读全文