百練 4103踩方格

2021-08-24 17:59:19 字數 991 閱讀 5958

描述

有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設:

a.    每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上;

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

c.    只能向北、東、西三個方向走;

請問:如果允許在方格矩陣上走n步,共有多少種不同的方案。2種走法只要有一步不一樣,即被認為是不同的方案。

輸入允許在方格上行走的步數n(n <= 20)

輸出計算出的方案數量

樣例輸入

2
樣例輸出

7
1)深搜

#include#include#include#define p 50

using namespace std;

int a[p][p];

int n;

int dfs(int i,int j,int n)

if(!a[i+1][j])

if(!a[i][j+1])

a[i][j]=0;//乙個方向遍歷完後重新恢復為0以備下次訪問

return num;

}int main()

2)遞迴

設l[i],r[i],u[i]分別為第 i 步向西、東、北的方案數,f[i]為總方案數。

l[i]=l[i-1]+u[i-1], r[i]=r[i-1]+u[i-1], u[i]=l[i-1]+r[i-1]+u[i-1]

f[i]=l[i]+r[i]+u[i]

=2*l[i-1]+2*r[i-1]+3*u[i-1]

=2*f[i-1]+u[i-1]

=2*f[i-1]+f[i-2]

#include#include#includeusing namespace std;

int f[25];

int n;

int main()

百練4103 踩方格

題意 有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請問 如果允許在方格矩陣上走n步,共有多少種不同的方案。2種走法只要有一步不一樣,即被認為是不同的方案。思路 ...

百練4103(踩方格)

bailian.openjudge.cn practice 4103 4103 踩方格 總時間限制 1000ms 記憶體限制 65536kb 描述 有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 ...

百練4982 踩方格

總時間限制 1000ms 記憶體限制 65536kb 描述有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請問 如果允許在方格矩陣上走n步,共有多少種不同的方案。2...