2604 Queuing(遞推 矩陣快速冪)

2021-08-28 03:53:26 字數 763 閱讀 3286

分析: 題目要求不含101 和111 的串

設f[n]為長度為n串符合條件的個數

則很明顯在長度為(n-1)並且符合條件的串後面加上乙個0一定符合

如果在長度為n-1的串後面加上乙個1的話我們得考慮n-1的串結尾的元素

如果是00的話我們可以看做是長度為n-3的串加上100

如果是10的話我們可以看做長度為n-4的串加上1100

因此f[n]=f[n-1]+f[n-3]+f[n-4];

#include #include using namespace std;

int n,m;

struct matrax

;matrax a=;

matrax e;

void init()

matrax multi(matrax a,matrax b)

}return c;

}matrax power(matrax a,int k)

k>>=1;

p=multi(p,p);

}return ans;

}int main()

; while(cin>>n>>m)*/

cout<}

return 0;

}

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...