暗い文字列-ダイナミックプランニング
「A」、「B」および「C」のみを含む文字列で、長さ3の連続するサブ列の中に「A」、「B」および「C」がそれぞれ1つある場合、この文字列は純粋であり、そうでなければこの文字列は暗い.例:
BAACAACCBAAA連続サブストリング「CBA」には「A','B','C'が1つずつ含まれているので、純粋な文字列です
AABBCCAABBは長さ3の連続するサブストリングが1つも存在しない'A','B','C'を含むので、暗い文字列である
あなたの任務は長さnの文字列('A'、'B'と'C'のみを含む)を計算し、どれだけ暗い文字列があるかを計算することです.
説明を入力:
出力の説明:
入力例:
出力例:
BAACAACCBAAA連続サブストリング「CBA」には「A','B','C'が1つずつ含まれているので、純粋な文字列です
AABBCCAABBは長さ3の連続するサブストリングが1つも存在しない'A','B','C'を含むので、暗い文字列である
あなたの任務は長さnの文字列('A'、'B'と'C'のみを含む)を計算し、どれだけ暗い文字列があるかを計算することです.
説明を入力:
n, (1 ≤ n ≤ 30)
出力の説明:
入力例:
2
3
出力例:
9
21
#include
#include #include #include using namespace std; int main(){ int num; cin >> num; long long dp[31]; dp[0] = 3; dp[1] = 9; dp[2] = 21; //int t = 189054114603; //cout << "t " << t; for (int i = 3; i < num; ++i){ dp[i] = 2 * dp[i - 1] + dp[i - 2]; } cout << dp[num - 1]; }