- 组合问题中的动态规划:
- 0-1背包问题;
- 最长公共子序列(包括连续的和非连续的两种,都可以用DP做,不过连续的用suffix tree做可以达到O(n)的时间复杂度);
- 最大子段和问题,即求一个数列中和为最大的一个连续子段(DP需要O(n)就可以解决,brute force最少要O(n^2), 分治要O(nlgn),DP费时最短);
- 硬币找换问题
- 图问题中有:
- TSP问题(travelling salesman problem):旅行n个城市,要求各个城市经历且仅经历一次,然后回到出发城市,要求所走的路程最短;
- 多段图的最短路径
- 查找问题:
- 最优二叉查找树(注意与Hofmann编码树区别开);
- 近似串匹配问题
- 其他:
- 装配线调度问题;
- 矩阵连乘法问题
     其实能用DP解决的问题很多都可以用回朔剪枝或分治解决。
没有评论:
发表评论