1. 程式人生 > 其它 >Bailian4130 踩方格【組合+打表】

Bailian4130 踩方格【組合+打表】

技術標籤:PKU百練題解(Bailian)Bailian4130踩方格

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

輸入
允許在方格上行走的步數n(n <= 20)
輸出
計算出的方案數量
樣例輸入
2
樣例輸出
7

問題連結Bailian4130 踩方格


問題簡述:(略)
問題分析:求組合數問題,關鍵是找出遞推式,然後打表。
程式說明:(略)
參考連結:(略)
題記:(略)

AC的C++語言程式如下:

/* Bailian4130 踩方格 */

#include <bits/stdc++.h>

using namespace std;

const int N = 20 + 1;
int ways[N];

int main()
{
    int n;
    ways[0] = 1;
    ways[1] = 3;
    scanf("%d", &n);
    for(int i = 2; i <=
n; i++) ways[i] = 2 * ways[i - 1] + ways[i - 2]; printf("%d\n", ways[n]); return 0; }