shooting解法讨论.docVIP

  • 3
  • 0
  • 约4.82千字
  • 约 6页
  • 2018-03-20 发布于河南
  • 举报
shooting解法讨论

试题来源:创 试题描述:数学模型: 已知n个整数a1..an,要求分配到k个组,每个组非空(至少分到一个整数)。 某个组的得分为组中所有整数的乘积,分组的总得分为k个组的得分之和。 求一总分组放案,使得分组的得分最高。 问题分析: 曾经有道类似的分组题,要求n个数按顺序分配到k个组,我们可以按组划分阶段设计动态规划方程解决。这和本题的唯一别是有无顺序,搜索 由于n个整数中既有正数又负数还有0,他们相乘的结果并不是简单的“数越多” 得分就越大而且还要将他们分配到k个组中。分法众多,情况复杂,给“贪心”造成了很大的麻烦 所以不妨从简单的情况入手设a1≤a2≤..an-1≤an,设a中正数、负数、01各有n+、n-、n0、n1个。 当k=1时,方案唯一:所有数分成一组 ; 当k=n时,方案唯一:每个整数单独一组, ; 当n=n+即所有数都是正数时: 一、可以规定,只有一个组包含了多余一个元素。 证明:若两个组A、B中都包含了多余一个元素。A中元素为a,除a外A中所有整数之积为MA;B中元素为b,除b外B中所有整数之积为MB。 MA,MB,a,b≥1,设MA≥MB 可以把b从B组移动到A组,移动后与移动前的得分差为: S’-S=(MA×a×b+MB)-(MA×a+MB×b)=MA×a×(b-1)+MB×(1-b)=(MA×a-MB)×(b-1)≥0移动后S并不比以前仍然有MA≥MB,因此可

文档评论(0)

1亿VIP精品文档

相关文档