hdu 2563 二維平面移動

2021-08-10 07:04:57 字數 710 閱讀 4570

在一無限大的二維平面中,我們做如下假設:

1、  每次只能移動一格;

2、  不能向後走(假設你的目的地是「向上」,那麼你可以向左走,可以向右走,也可以向上走,但是不可以向下走);

3、  走過的格仔立即塌陷無法再走第二次;

求走n步不同的方案數(2種走法只要有一步不一樣,即被認為是不同的方案)。

input

首先給出乙個正整數c,表示有c組測試資料

接下來的c行,每行包含乙個整數n (n<=20),表示要走n步。

output

請程式設計輸出走n步的不同方案總數;

每組的輸出佔一行。

sample input

sample output

#include

int main()

int c,i,a[25]=;;

for(i=3;i<25;i++)

a[i]=2*a[i-1]+a[i-2];

scanf("%d",&c);

while(c--)

int n;

scanf("%d",&n);

printf("%d\n",a[n]);

return 0;

因為n+1時都可以往兩個方向或者三個方向;三個方向是為n時向上的狀態;為n時有多少個向上的狀態?當n-1有多少狀態,n就有多少個向上的狀態;所以遞推公式為a[n]=2*a[n-1]+a[n-2]; 

平面二維DP

馬攔過河卒 原題傳送門 這一到題目也是比較基礎的動態規劃,也可以理解為是遞推,主要是運用加法原理,思維難度不大。我們要求從 0,0 到 n,n 的方案總數,如果沒有馬的話,我們可以這麼做 設 f i j 為從 0,0 走到 i,j 的方案總數,我們知道一定是有上面和左邊走來,所以只需要累加上面和左邊...

二維幾何 平面最近點對

存個模板 是用分治寫的時間複雜度 nlogn 但是本題好像還有一種玄學做題法 我們充分發揚人類智慧型 將所有點全部繞原點旋轉同乙個角度,然後按x座標排序 根據數學直覺,在隨機旋轉後,答案中的兩個點在陣列中肯定不會離得太遠 所以我們只取每個點向後的5個點來計算答案 這樣速度快得飛起,在n 100000...

二維平面上的回溯演算法(dfs)

回溯演算法在二維平面上的搜尋也能得到應用,也就是我們常說的dfs 題目 給定乙個二維網格和乙個單詞,找出該單詞是否存在於網格中。單詞必須按照字母順序,通過相鄰的單元格內的字母構成,其中 相鄰 單元格是那些水平相鄰或垂直相鄰的單元格。同乙個單元格內的字母不允許被重複使用。示例 輸入 3 4abce s...