acm 方格移動

2021-07-11 22:18:37 字數 778 閱讀 6385

題目:

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方格,骨牌的鋪放方案有三種,如下...