題目鏈結
題意:男為f,女為m,求在長度為l的佇列中不存在fmf,fff這樣子序列的序列的個數。
思路:又是遞推題,假設長度為l的佇列中存在的序列個數為f(l),那麼考慮最後乙個放的字母,假設最後乙個放m,那麼前l-1個可以隨意排列,即個數為f(l - 1);如果最後乙個放f,那麼考慮後兩個字母,可能出現的情況為ff,mf,這樣比較難判斷是否符合題目要求的,所以我們考慮後三個字母,可能出現的情況就為fff,mff,fmf,mmf,顯而易見mff,mmf符合題意。當後三個為mmf時,前l-3個可以隨意排列,即個數為f(l - 3),當為mff時,可能出現不滿足題意的情況,所以我們考慮後四個字母,可能出現的情況為mmff,fmff,只有mmff滿足題意,即個數為f(l - 4)。因此可以得到乙個遞推式f(l) = f(l - 1) + f(l - 3) + f(l - 4)。那麼剩下的就是矩陣快速冪的任務了。
**:
#include #include #include #include #include using namespace std;
struct mat
mat operator * (const mat& c)
mat operator % (int mod)
}tmp, c;
int f[5];
int l, m;
void init()
mat pow_mod(int k)
int main()
}
return 0;
}
HDU 2604 Queuing 矩陣快速冪
題目大意 有2 l個長度為l的字串,字串只能有f或m組合而成,問這些字串中不含有fmf或著fff的字串有多少個 解題思路 設f n 為字串長度為n,且字串中不包含fmf或者fff的字串個數 假設現在填到第n位了,最後乙個字元如果填的是m的話,那麼f n 1 的都可以填 最後一位填的如果是f的話,這就...
HDU 2604 Queuing 矩陣快速冪
大意 一列人有mf 男,女 問最後不是fmf和fff的排列方式有多少種。思路 就是個遞推,類似推骨牌從最後一位來考慮,ps骨牌 最後的牌排列方式有橫著或者豎著,豎著的話有f n 1 中,否則橫著就是f n 2 此題也是當最後為m有f n 1 當為f時不確定看兩位mf,ff 所以最終的表示式就是f n...
HDU 2604 Queuing(矩陣高速冪)
這題僅僅要推出公式來,構造矩陣就非常easy了。問題是推不出公式來。tat。從遞推的思路考慮。用f n 表示n個人滿足條件的結果。假設最後乙個是m則前n 1人能夠隨意排列,有f n 1 種 假設是f,則考慮後兩位mf和ff,沒有一定滿足或者一定不滿足的狀態,所以繼續考慮一位,考慮後三位mmf,fmf...