合唱队形(LIS最长递增子序列) 解题过程
摘要:
【题目链接】:点击打开链接【解题思路】:1.学会把问题分解成简单的子问题求解:一开始想起来把这个问题分解成两个过程求解,求上升最长子序列和下降最长子序列,后来后者可以转化成前者来求 状态dp[i]表示结尾为num[i]的子序列的最大长度,状态方程为: dp[i]=1; if(num[i]>num[k]) (k=1~i-1) dp[i]=max(dp[i],dp[k]+1) 由此可见,动态规划状态的结果也不一定就是所求的最优值,只要它和最优值相关,由他可求出最优值即可。2.动态规划有时也是暴力的动态规划:即基于少量穷举的动态规划,穷举1~n分别作为最大值点的情况3.编程收获与心得:这... 阅读全文
posted @ 2013-07-03 00:37 Gddxz 阅读(170) 评论(0) 推荐(0) 编辑