P最大乘积【DOC精选】.docVIP

  • 3
  • 0
  • 约3.32千字
  • 约 4页
  • 2017-02-16 发布于江苏
  • 举报
P最大乘积【DOC精选】

最大乘积 题目解析: 贪心策略! 一个大的数,是分解好,还是不分解好? 设这个数为m=a+b,很自然a*ba+b(a,b均1),因为乘法乘以1,其结果不变。也就是说任何一个数,只要你愿意分解,你就可以得到更大的结局。 很自然想到,分解的越多越好! 交换论证法来证明: 给定一个最优解(分解成多个数据),如果其中某个数可以分解的话,我们将得到一个新的解,其结果比优解还要优! 分解成的因子越小(1)越好,乘积越大 要求分解出来的因子均不可相同。 本题贪心策略: 分解的因子,从2开始,尽可能地要求因子小,同时又不能相同! 因此从2开始,再逐步递增! 结果可能的情形:2*3*4*…..*K*m 最后得到的一个数m,(m=k) 处理方案:m将和某个数相同,不符合题意,这样,我们只能调整2…k中的一些数,要求每个数都尽可能小,我们想到从末端开始,逐步微调整,循环进行! 初看此题,很容易想到用回溯法进行搜索,但是这里的n范围比较大,最多到10000,如果盲目搜索,运行时间比较长,效率很低,对于部分数据可能得到结果,对于大部分数据会超时或栈溢出。 先来看看几个n比较小的例子,看能否从中找出规律: n 分解方案 最大的乘积 5 2 3 6 6 2 4 8 7 3 4 12 8 3 5 15 9 2 3 4 24 10 2 3 5 30 可以发现,将n分解成a1, a2, a3,

文档评论(0)

1亿VIP精品文档

相关文档