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 1074 Doing Homework
摘要: 这题本来是在dp专题里的,或许这里是记忆化搜索吧!不是很明白的!
阅读全文
hdu 2059 龟兔赛跑
摘要: 在同学的悉心教导之下总算做对了,虽然还不是很懂~
阅读全文
hdu 1203 I NEED A OFFER!
摘要: 原以为是用DP做的,但就是不会写,后来才知道用贪心就可以了!
阅读全文
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)
阅读全文
hdu 1195 Open the Lock
摘要: 广搜,方向为加一,减一,相邻交换,注意10和0的处理!
阅读全文
hdu 1195 Open the Lock
摘要: 广搜,方向为加一,减一,相邻交换,注意10和0的处理!
阅读全文
hdu 1016 Prime Ring Problem
摘要: 很基本的深搜题,素数环,但是不理解深搜的含义还是不能做的!还好有人教,O(∩_∩)O~
阅读全文