代码之家  ›  专栏  ›  技术社区  ›  ng.newbie

TopCoder中的示例违反了约束

  •  0
  • ng.newbie  · 技术社区  · 7 年前

    我在努力理解这个问题 DivFreed2 TopCoder上:

    它特别指定数组

    • 数组的长度为n。
    • 每个元素都是1到k之间的整数(包括1和k)。
    • 只要A和B是数组的两个连续元素(按此顺序),我们就有(A<=B)或(A mod B!=0)。

    我的问题是关于第一个示例的第三个约束:

    2
    2
    Returns: 3
    The three arrays Hero likes are {1,1}, {1,2}, and {2,2}.
    

    答案不应该是4吗?数组{2,1}发生了什么? 有3个数组可以按照上述约束生成,但thre也是可以生成的第四个数组,即{2,1}。没有,在问题的哪里写着,我们只能有唯一的数字组合。 为什么我们不将{2,1}包含在可以有效的数组列表中?

    所有指定的问题都是数字排列的限制。

    我错过什么了吗?数字数组是否表示唯一的组合?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Andrey Tyukin    7 年前

    2 > 1 2 % 1 == 0 因此

    !(2 <= 1) && !(2 % 1 != 0)
    

    因此 {2, 1} 不是解决方案。