有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設:
1. 每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上;
2. 走過的格仔立即塌陷無法再走第二次;
3. 只能向北、東、西三個方向走;
請問:如果允許在方格矩陣上走n步,共有多少種不同的方案。2種走法只要有一步不一樣,即被認為是不同的方案。
允許在方格上行走的步數n(n <= 20)
計算出的方案數量
樣例輸入
2樣例輸出
7
這道題乍一看沒有思路,因為搜尋太慢,dp又看不出明顯的遞推關係。因此我們先用紙筆模擬一下:
不妨嘗試分類討論的思想。用dp[i]表示還剩i步時有的方法,顯然dp[0] = 1。因為不能向南走,也不能走原來走過的,對於第一步,只有三種情況:
之後的每一步,如果一旦向北走,就被轉化為dp
[i−2
],dp
[i−3
];反之如果一路向東,最終就是dp
[0]。
西面的情況和東邊一樣。
據此,可以寫出動態轉移方程:dp
[0]=
1dp[
i]=d
p[i−
1]+2
(∑k=
2idp
[i−k
]+1)
這蘊含著:dp
[0]=
1,dp
[1]=
3dp[
i]=2
dp[i
−1]+
dp[i
−2]由下式可以輕鬆寫出o(
n)程式。
百練4982 踩方格
總時間限制 1000ms 記憶體限制 65536kb 描述有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請問 如果允許在方格矩陣上走n步,共有多少種不同的方案。2...
4982 踩方格 動態規劃
描述 有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請問 如果允許在方格矩陣上走n步,共有多少種不同的方案。2種走法只要有一步不一樣,即被認為是不同的方案。輸入允...
踩方格(百練 4982 深搜)
總時間限制 1000ms 記憶體限制 65536kb 描述有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請問 如果允許在方格矩陣上走n步,共有多少種不同的方案。2...