标签: azspcs

如何改进此算法来解决修改过的邮票拼图?

飞镖之子问题 Al Zimmermann编程竞赛的竞赛,于2010年6月20日结束:

  • 假设您有一个划分为R区域的飞镖靶.每个飞镖靶区域具有与其相关联的正整数值.进一步假设你有D型飞镖并且你把它们扔在飞镖上.每个飞镖都落在一块板的R区域或完全错过了板.您的分数是飞镖落地区域的值的总和.错过董事会的飞镖对你的分数没有贡献.如果多个飞镖落在同一区域,则会多次累积该区域的值.

  • 例如,假设R = 5,即飞镖区域具有值(1,2,4,7,11),并且D = 3.如果您的三个飞镖落在区域2,4和11中,则得分为17分.如果一个飞镖错过了棋盘而另外两个掉落在7区,则得到14分.

  • 飞镖问题是:对于给定的R和D,确定应该与飞镖的R区域相关联的值,以便最大化通过投掷D飞镖无法达到的最小分数.

    D = number of darts    R = number of dartboard regions
        3                      1 through 40
        4                      1 through 30
        5                      1 through 20
        6                      1 through 10
    
    Run Code Online (Sandbox Code Playgroud)

================================================== ================================

使用的基本算法(解释D = 3)

  • 我从下面显示的结果数组开始.01是飞镖靶区域应该存在的分数.0表示飞镖错过了电路板.所以,我将为41个元素生成这个数组(一个额外补偿0).1是强制性的,因为否则没有其他方式来生成1.

     ____ ____ 
    |    |    |
    |  0 |  1 |
    |____|____|
    
    Run Code Online (Sandbox Code Playgroud)
  • 我生成了一个临时数组,它使用结果数组中的dart分数显示所有总数是可以实现的,三次抛出.带下划线的元素是用于生成划痕的元素.

    0 = 0 …
    Run Code Online (Sandbox Code Playgroud)

algorithm optimization azspcs

24
推荐指数
1
解决办法
1158
查看次数

标签 统计

algorithm ×1

azspcs ×1

optimization ×1