骨牌覆蓋問題:
用1*2骨牌完美覆蓋n*m棋盤,求方案數
如果骨牌橫著放,只能兩個橫著的骨牌摞在一起
如果豎著放,恰好佔一列
所以dp[i]=dp[i-1]+dp[i-2]
即斐波那契數列
可以想到乙個遞推式:f[n]=a2*f[n-2]+a4*f[n-4]+a6*f[n-6]+……+an*f[0]
ai(i是偶數)是未知的係數
即覆蓋3*i棋盤且無法按某一列將3*i棋盤分成左右兩部分的方案數
當i=2時,有3種方案
當i>=4(i為偶數)時,只有2種
因為考慮最左上角的骨牌,如果豎著放,要想無法被分割,除了最右上角的豎著放,其餘都要橫著放
如果最左上角的骨牌橫著放,與他豎著放是對稱的
所以f[n]=3*f[n-2]+2*f[n-4]+2*f[n-6]+……+2*f[0]
同理得f[n-2]=3*f[n-4]+2*f[n-6]+……+2*f[0]
兩式相減,得f[n]=4*f[n-2]-f[n-4]
骨牌覆蓋問題
骨牌覆蓋問題,就是用 1x2 大小的骨牌,鋪設乙個給定大小的乙個矩形區域,要求必須鋪滿,且不可以超出邊界。問總的鋪設方案數字多少?這一類問題就是骨牌覆蓋問題。不同規模的資料有不同的方法。下面來看看最簡單的 2 n 區域裡面的鋪設方法數。n 0,一種 n 1 為一種 n 2,兩種 n 3,5種 較為容...
骨牌覆蓋問題二
描述 上一周我們研究了2xn的骨牌問題,這一周我們不妨加大一下難度,研究一下3xn的骨牌問題?所以我們的題目是 對於3xn的棋盤,使用1x2的骨牌去覆蓋一共有多少種不同的覆蓋方法呢?首先我們可以肯定,奇數長度一定是沒有辦法覆蓋的 對於偶數長度,比如2,4,我們有下面幾種覆蓋方式 輸入第1行 1個整數...
hihoCoder 骨牌覆蓋問題 一
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述骨牌,一種古老的玩具。今天我們要研究的是骨牌的覆蓋問題 我們有乙個2xn的長條形棋盤,然後用1x2的骨牌去覆蓋整個棋盤。對於這個棋盤,一共有多少種不同的覆蓋方法呢?舉個例子,對於長度為1到3的棋盤,我們有下面幾種覆蓋方式 ...