題目:
problem description
在一無限大的二維平面中,我們做如下假設:
1、 每次只能移動一格;
2、 不能向後走(假設你的目的地是「向上」,那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走);
3、 走過的格仔立即塌陷無法再走第二次;
求走n步不同的方案數(2種走法只要有一步不一樣,即被認為是不同的方案)。
input
首先給出乙個正整數c,表示有c組測試資料
接下來的c行,每行包含乙個整數n (n<=20),表示要走n步。
output
請程式設計輸出走n步的不同方案總數;
每組的輸出佔一行。
sample input
212
sample output
37
思路:動態規劃。。
方程是:f(n)=f(n-2)*3+(f(n-1)-f(n-2))*2。。
在紙上畫了畫發現你f(n)走的步數不僅和f(n-1)有關,還和f(n-2)有關,從f(n-1)->f(n)的過程中會有f(n-2)個三個方向的,因為從f(n-2)->f(n-1)中每一次都會產生一步向上的,只有向上走下一步才能有三種走法,否則兩種,所以把三次的減去就得到兩次的了,然後依次呼叫下去。。
**:#include
using namespace std;
int main()
cout<}return 0;
}
HDU ACM 方格移動
problem description 在一無限大的二維平面中,我們做如下假設 1 每次只能移動一格 2 不能向後走 假設你的目的地是 向上 那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走 3 走過的格仔立即塌陷無法再走第二次 求走n步不同的方案數 2種走法只要有一步不一樣,即被認為是...
ACM程式設計書中題目 k 移動磚塊
題目簡述 移動磚塊使其變成相同的高度,求最少的移動步數。解題思路 1 首先移動磚塊變成相同的高度,即變成平均值。所以先對所有磚塊的高度求和再取平均值。2 對磚塊的高度用sort進行排序。3 總移動的次數f初值為0,高度小於平均值的磚塊,用平均值減去該高度即為應該移動的次數e 每次移動一塊 f f e...
骨牌鋪方格
time limit 1 sec memory limit 128 mb submit 43 solved 12 submit status web board 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.例如n 3時,為2 3方格,骨牌的鋪放方案有三種,如下...