鏈結:
題意:給出乙個佇列,其中站著f(女人)m(男人),讓你求出佇列中不含有fmf和fff的佇列總共的種類數(對m取模)。佇列長度達到1e6肯定不能用排列組合做。是用遞迴順序求的方式。因為要取模,所以不能打表,只能每次求,這樣就需要用到矩陣快速冪來降低時間複雜度了。
遞推公式:(a[i][0]~aa[i][3]分別代表mm,mf,fm,ff結尾的佇列)
a[i][0]=a[i-1][2]+a[i-1][0]
a[i][1]=a[i-1][0]
a[i][2]=a[i-1][1]+a[i-1][3]
a[i][3]=a[i-1][1]
所以右乘矩陣 1 0 1 0 即可。
1 0 0 0
0 1 0 1
0 1 0 0
**:#include
#include
#include
#include
using namespace std;
#define maxn 10
int m,k;
struct matrix
return tmp;
}int main()
}本來做之前說建立矩陣如網路流建圖一樣困難,仔細想一想,沒有那麼困難,主要是找出遞推公式,讓後矩陣快速冪就是用來優化的。
HDU2604 Queuing 遞推 矩陣快速冪
題目鏈結 題意 男為f,女為m,求在長度為l的佇列中不存在fmf,fff這樣子序列的序列的個數。思路 又是遞推題,假設長度為l的佇列中存在的序列個數為f l 那麼考慮最後乙個放的字母,假設最後乙個放m,那麼前l 1個可以隨意排列,即個數為f l 1 如果最後乙個放f,那麼考慮後兩個字母,可能出現的情...
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...