根据属性

时间:2015-11-25 07:29:01

标签: algorithm

我有一个数字N和字符串S.我必须创建一个大小为N的数组,其中包含从0到N-1的数字排列,从0到N-1索引,这样0到N-2,if:< / p>

S[i]=='1'   then A[i]>A[i+1]
else A[i]<A[i+1]

我必须找到创建此数组的方法的数量。

问题:我知道这可以通过动态编程解决,但主要问题是,如何跟踪已使用的数字。

如果N在1到25之间,那么I can use dp[1<<n][n]Mask告诉我使用的号码,当N达到3000时,如何解决这个问题。

如何跟踪序列中使用的数字,因为每个数字只能使用一次?

For Ex:
3
S =11
Ans = 1
The only permutation that satisfies the given pattern is (2,1,0).

0 个答案:

没有答案