【題目描述】
有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設:
a、每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上;
b、走過的格仔立即塌陷無法再走第二次;
c、只能向北、東、西三個方向走;
請問:如果允許在方格矩陣上走n步,共有多少種不同的方案。2種走法只要有一步不一樣,即被認為是不同的方案。
【輸入】
允許在方格上行走的步數n(n≤20)。
【輸出】
計算出的方案數量。
【輸入樣例】
2【輸出樣例】
7感受:
這個題目乍一看思路挺多的,但就是推不出來,其實有的時候缺的就是思維的轉變,想不出來的時候出去跟朋友玩玩就突然發現能相通了。
題目分析:
我們可以把這個題走的方法分為三類,一類是向東走,一類是向西走,還有一類是想北走,用三個陣列來儲存這三個類別的沒一步走法。
設s【n】,e【n】,w【n】分別儲存向北、東、西走第n步的走法。
當n=1時向向北走只有一種走法則s=1.同理e【i】=1,w=1;
當n=2時s=e+w+s;
e=s+e;
w=w+s;
當走到第n步時,則s【n】=e【n-1】+w【n-1】+s【n-1】;
e【n】=s【n-1】+e【n-1】;
w【n】=w【n-1】+s【n-1】;
等於n-1步可以向北(西或東)的步數之和。
則最終步數等於e【n】+w【n】+s【n】
**:
#include
using
namespace std;
intmain()
cout<+e[n]
+s[n]
;return0;
}
踩方格(找規律 遞推)
時間限制 1 sec 記憶體限制 128 mb 提交 8 解決 7 提交 狀態 討論版 命題人 quanxing 有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請...
基本演算法之遞推 221 踩方格
測試鏈結 總時間限制 1000ms 記憶體限制 65536kb 描述 有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請問 如果允許在方格矩陣上走n步,共有多少種不...
踩方格 動態規劃,兩種遞推
描述有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請問 如果允許在方格矩陣上走n步,共有多少種不同的方案。2種走法只要有一步不一樣,即被認為是不同的方案。輸入允許...