第9章--第3节-动态规划经典题(C++版)演示课件文.pptVIP

  • 7
  • 0
  • 约1.81万字
  • 约 53页
  • 2018-02-28 发布于天津
  • 举报

第9章--第3节-动态规划经典题(C++版)演示课件文.ppt

第九章 动态规划; 动态规划程序设计是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。不象前面所述的那些搜索或数值计算那样,具有一个标准的数学表达式和明确清晰的解题方法。动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。因此读者在学习时,除了要对基本概念和方法正确理解外,必须具体问题具体分析处理,以丰富的想象力去建立模型,用创造性的技巧去求解。我们也可以通过对若干有代表性的问题的动态规划算法进行分析、讨论,逐渐学会并掌握这一设计方法。;第四三节 动态规划经典题; s[i]表示前i堆石头的价值总和,f[i][j]表示把第i堆到第j堆的石头合并成一堆的最优值。 for (i=n-1;i=1;i--) for (j=i+1;j=n;j++) for (k=i;k= j-1;k++) f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+s[j]-s[i-1]); 输出f[1][n]; 【参考程序】 #includecstdio #includecstring int min(int a,int b) { return a b ? b:a;

文档评论(0)

1亿VIP精品文档

相关文档