摘要: DP构建(仿照Floyd)这题说难挺难的,现在想想好像也不太难,是因为想复杂了。其实这题的要求不算多,它仅仅是要求最后转换回到出发时的那种硬币并且获利大于0.01,而转换次数不能超过n次,转换次数越少越好,然后输出最短的路径。注意:题目并没有说要你获利最大,只是是获利>=0.01即可,另外题目对路径并没有什么特殊要求,仅仅是要求不能超过n,在路径长度相同的情况任意一条都可以的。所以我们就抓住一点:转换次数!!!!!!也就是说每转换一次,我们就去找所有的货币,看他们回到自己的时候那些货币的获利已经大于0.01了,如果有货币的获利已经大于0.01了,那么我们的算法就结束了,就输出这种货币的转 阅读全文
posted @ 2012-12-26 19:55 Titanium 阅读(1274) 评论(0) 推荐(0) 编辑
摘要: DP(类似于矩阵链乘法)我们以sample来说明问题长度100,切的地方为25,50,75.那么无论怎么切最后都是剩下四段 [0,25] , [25,50] , [50,75] , [75,100]把它们连续的两两合并的话就能得到上一层的状态,好像[0,25]和[25,50]合并,就得到[0,50],也就是说从[0,50]变到[0,25] , [25,50],花费是多少呢,就是50所以说到这里,也差不多了,状态转移方程为 dp[i][j]=min{ dp[i][k]+dp[k][j]+(y-x)} (k是i和j之间的一个数)这样子的话,我们的目标状态就是dp[0][len],即原来的整一条的费 阅读全文
posted @ 2012-12-26 13:37 Titanium 阅读(449) 评论(0) 推荐(0) 编辑