python 矩形覆蓋問題

2021-10-04 19:12:02 字數 721 閱讀 9781

題目:

思路:遞迴,用列表s來儲存覆蓋方法的個數

n=1時,s[0]=1

n=2時,s[1]=2

n=3時,此時分為兩個不重複的覆蓋方法

1+2:s[0]*s[1]

2+1: (s[1]-1)*s[0] %減一是為了不計算重複覆蓋方法

n=4時,分為兩種

1+3:s[0]*s[2]

2+2:(s[1]-1)*s[1]

…以此類推,可得為n時的覆蓋方法s[n-1]=s[0]*s[-1]+(s[1]-1)*s[-2]

python**:

# -*- coding:utf-8 -*-

class

solution

:def

rectcover

(self, number)

:# write code here

l=[1

,2]if number==0:

return

0while

len(l)

t=len(l)

s=l[0]

*l[-1]

+(l[1]

-1)*l[-2

]return l[number-

1]

矩形覆蓋問題

問題描述 用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。現在問用8個2 1的小矩形無重疊地覆蓋乙個2 8的大矩形,總共有多少種方法?矩形如下 分析 我們可以把2 8的覆蓋方法記為f 8 用第乙個1 2的矩形去覆蓋大矩形的最左邊時有兩個選擇,豎著放或橫著放。如果豎著放,那麼右邊還剩2 7的矩形區域,這...

矩形覆蓋問題

我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?這種題,可以借鑑動態規劃的思路分析問題。假設現在n 8 那要求解的問題就是 f 8 如果豎著放舉行,那就剩下了 2 7 的舉行,也就是 f 7 如果橫著放,那就剩下了 2 ...

矩形覆蓋(python)

原始碼 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?coding utf 8 依舊是斐波那契數列 2 n的大矩形,和n個2 1的小矩形 其中 2 target 為大矩陣的大小 有以下幾種情形 1 target 0 大...