可能基于约束的数组组合

时间:2016-07-24 04:47:22

标签: algorithm combinatorics

存在多少m个元素的唯一数组,使得它们包含[1,n]范围内的数字,并且存在至少一个子序列{1,2,3,4 .... n}?

约束:m> Ñ

我想到了组合方法。但是会有重复。 在我的方法中,我首先列出从1到n的所有数字。 例如,如果m = n + 1,则答案是n ^ 2。 (n个可用点,每个数字在[1,n]范围内) 现在,我认为可能存在进一步计算的DP关系,但我无法弄明白。

1 个答案:

答案 0 :(得分:1)

这是n = 3和m = 5的示例。绿色方块是子序列。子序列由数组中的第一个1,第一个2之后的第一个1等组成。不属于子序列的正方形可以采用{{1}如果它们在子序列结束之后,则为值;否则为n值。

enter image description here

所以这个例子的答案是n-1,这很容易被蛮力证实。系数1,3,6似乎与Pascal's triangle有关。其余的留给读者。