描述:
我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,
總共有多少種方法?
思路:
target = 1大矩形為2*1,只有一種擺放方法,return1;
target = 2 大矩形為2*2,有兩種擺放方法,return2;
target = n 分為兩步考慮:
第一次擺放一塊 2*1 的小矩陣,則擺放方法總共為f(target - 1)
第一次擺放一塊1*2的小矩陣,則擺放方法總共為f(target-2)
因為,擺放了一塊1*2的小矩陣(用√√表示),對應下方的1*2(用××表示)擺放方法就確定了,所以為f(targte-2)
1.遞迴
public int rectcover(int target)
if(target == 1)else if(target == 2)else
}
2.動態規劃
public int rectcover(int target)
return dp[target];
}
C語言鋪地磚問題
鋪地磚 time limit 1000ms memory limit 65536k total submit 711 accepted 224 description 元旦過去了,新年大酬賓活動也已經告一段落了。陳蓋歷望著堆在倉庫的瓷磚,很無聊的他把這些瓷磚裁成很多1x1 1x2 1x3的小瓷磚,然...
鋪地磚(找遞推式 大數)
時間限制 1 sec 記憶體限制 128 mb 題目描述 一天,晨晨的數學老師布置了一道題目,大意如下 用1 1和2 2的磁磚不重疊地鋪滿n 3的地板,共有多少種方案?例如 n 1時 1 3的地板方法就乙個,直接由三個1 1的磁磚鋪滿。n 2時 2 3的地板可以由下面3種方案鋪滿 輸入第一行 乙個整...
鋪地磚 狀壓DP練習
有乙個n m n 5,m 1000 的棋盤,現在有1 2及2 1的小木塊無數個,要蓋滿整個棋盤,有多少種方式?答案只需要mod1,000,000,007即可。我也不知道這道題的 qaq n和m的範圍本應是相同的,但是題目給出的n的值很小,這就給我們提供了使用狀壓dp的思路。假設第一列已經鋪滿,則第二...