算法设计与分析:动态规划之最大K乘积找乘号位置.pptVIP

  • 6
  • 0
  • 约1.47千字
  • 约 8页
  • 2024-03-15 发布于湖南
  • 举报

算法设计与分析:动态规划之最大K乘积找乘号位置.ppt

最大K乘积问题描述问题描述:题目:在一个长度为N的数字串中插入k个乘号,将N分成k部分,找出一种分法,使得这k+1个部分的乘积最大。Example: 有一个数字串:312,当N=3,K=1时会有以下两种分法:1)3*12=362)31*2=62

这时,符合题目要求的结果是:31*2=62解题思路:找到最简结构:把一个数一分为二(插入m个乘号)k1k2k3…………kn-2kn-1kn Xki+1….kn-2kn-1kn直到:i==m然后从这n-i中情况中选出最佳,保证子结构的最优前i个数插入m-1个乘号的最好情况由最简结构可得到动规方程M(i,j):前i个数插入j个乘号的最大值W(i,j);原数字的第i位到第j位组成的数字M(i,j)=max{M(i-1,j-1)*W(i,i), M(i-2,j-1)*W(i-1,i), ………… M(i-d,j-1)*W(i-d+1,i), } d=1,2,3…….i-j[]编写程序 1.初始化W[i][j]数组stringsub; coutnu

文档评论(0)

1亿VIP精品文档

相关文档