在整數1,2,...,N的排列中,有些排列滿足下面一個性質A:該排列中除了最後一個整數外的每一個整數後面都跟有一個與它相差爲1的數字。設有N個數字,已知一部分位置上的數,求滿足性質A的排列有多少個?
分析:假設只有一個數字, 即N=1,則滿足A條件。若只有兩個數字,則一定滿足。若有三個數字,不論最後一個數字是什麼,滿足A條件的後綴序列必然是連續數字組成的集合。例如3個數字的時候,後兩個數字不可能爲(1,3)。根據這個屬性我們設計動態規劃算法。
假設
f(s,r)表示範圍在[s,s+r-1]的數字組成的滿足A性質的串的數量。
則 f(s+1,r-1) 若r位置確定爲s
f(s,r)= f(s,r-1) 若r位置確定爲s+r-1
f(s+1,r-1)+f(s,r-1) 若r位置沒有確定
以前也做過這道題,