我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?
先下結論,還是斐波那契如同,如果第乙個方塊是縱向放置,則剩餘的是f(n-1)種,
如果第一次放置時橫向放置,則第二塊位置只能橫向放置,因此剩餘f(n-2)種
因此:f(n) = f(n-1) + f(n-2)
故,顯而易見,又是斐波那契數列。
f(1) = 1
f(2) = 2
f(3) = 3..
.f(n) = f(n-1) + f(n-2)
輸入資料為: 5輸出:有 5 個小矩形
共有 8 種方法。
#include using namespace std;
class solution
int num1(1),num2(2);
for (int i = 0; i < number - 2; ++i)
cout << "有 " << number << " 個小矩形" << endl << "共有 " << num2 << " 種方法。" << endl;
return num2;
}};int main()
USACO 鋪放矩形塊 題解
題目大意 給定4個矩形塊,找出乙個最小的封閉矩形將這4個矩形塊放入,但不得相互重疊。所謂最小矩形指該矩形面積最小。思路 列舉矩形的安放順序,再按照題目所給的圖判斷即可,主要要想到列舉。1 include2 using namespace std 3int i,n,sum 10009,p 5 q 5 ...
骨牌組成矩形問題
演算法 遞推 數學綜合 題目大意 有t資料,給定乙個2 n的矩陣,只能利用1 2和2 2的骨牌,讓你去組成2 n的矩陣,問有多少種組成方法。分析 從題目大意上不難看出,本題是一道遞推題目,由前面的組成方案可以推得後面的組成方案,具體推法如下 1 當前的2 n的矩陣可以拆分成2 n 1 1 2的或者是...
前面小知識塊
1.5 web應用打包成war檔案 基本用法 jar vfm0mi jar 檔案 manifest 檔案 c 目錄 檔名 選項 c 建立新的存檔 t 列出存檔內容的列表 x 展開存檔中的命名的 或所有的 檔案 u 更新已存在的存檔 v 生成詳細輸出到標準輸出上 f 指定存檔檔名 m 包含來自標明檔案...