牛客网之黑暗的字符串
生活随笔
收集整理的這篇文章主要介紹了
牛客网之黑暗的字符串
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:黑暗的字符串
- 分析:不管前面是什么序列,你在第n位至少有兩種填法,第n-1,n-2的字母,當第n-1,n-2字母相同時,前面就漏掉了一種填法,即加上一個f(n-2)即可
- 確定dp數組以及下標的含義:dp[i]表示字符串的長度為i的時候的黑暗的字符串的數目。
- 狀態轉移方程:dp[i]=dp[i-1]+2*dp[i-2];
- 初始化:vector<long long> dp(n+1,0); dp[1]=3;dp[2]=9; 所有的狀態如果都不符合題目的要求的話,其結果是為0的。
- 確定遍歷順序:dp[i]是由dp[i-1]和dp[i-2]推導而來,因此,遍歷i的時候應該從左往右遍歷。
- 優化:這道題其實就是斐波那契數列的變形,因此我們可以采用矩陣快速冪進行優化程序,使得其時間復雜度降為O(logN)。
總結
以上是生活随笔為你收集整理的牛客网之黑暗的字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS总结-Runtime篇之黑魔法Me
- 下一篇: 生活-女生的正确生活方式