【问题标题】:How many different arrays can we get by replacing the two adjacent elements from the array with their sum?通过将数组中的两个相邻元素替换为它们的和,我们可以获得多少个不同的数组?
【发布时间】:2015-09-19 17:44:43
【问题描述】:

我们有一个数组 AN 元素。 在任何时候,我们都可以选择数组中相邻的两个元素并用它们的和替换它们,从而得到一个新数组。我们可以根据需要多次重复相同的操作。 我的问题是,通过多次应用此操作,我们可以获得多少个不同的数组?

【问题讨论】:

  • 这是作业吗?你试过什么?
  • 暴力破解,无法判断状态。
  • 这也将取决于数组的项目,你只想要最大可能的数量吗?
  • 我们的操作可以得到多少个不同的数组(不是同一位置的相同元素)?
  • 请解释一下“不同的数组”是什么意思,如果你的原始数组由 N 个零组成,你将得到 N 个不同的数组,每个长度一个。

标签: arrays dynamic-programming


【解决方案1】:

您确定允许使用零和负数吗?如果只允许正数,那么结果很简单:-)

如果列表有n 元素,那么pair 元素对之间有n-1 逗号。每个新数组都是通过用 plus sing 改变一些逗号来产生的。我们看到有2^(n-1) 不同的数组。

我认为使用零可以通过使用从零开始的左右子数组来将问题减少到相同的子问题。这是一些重复,但我还没有弄清楚:-/

如果允许否定,则要复杂得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多