1 11 hduoj 2067 小兔的棋盤

2021-10-01 23:58:09 字數 945 閱讀 9935

problem description

小兔的叔叔從外面旅遊回來給她帶來了乙個禮物,小兔高興地跑回自己的房間,拆開一看是乙個棋盤,小兔有所失望。不過沒過幾天發現了棋盤的好玩之處。從起點(0,0)走到終點(n,n)的最短路徑數是c(2n,n),現在小兔又想如果不穿越對角線(但可接觸對角線上的格點),這樣的路徑數有多少?小兔想了很長時間都沒想出來,現在想請你幫助小兔解決這個問題,對於你來說應該不難吧!

input

每次輸入乙個數n(1<=n<=35),當n等於-1時結束輸入。

output

對於每個輸入資料輸出路徑數,具體格式看sample。

sample input

-1sample output

1 1 2

2 3 10

3 12 416024

#include#define ll long long

ll f[36][36];

void main()

{ int n;

int cnt=1;

while(scanf("%d",&n)!=eof&&n!=-1)

{for(int i=0;i<=n;i++)

f[0][i]=1;

for(int i=1;i<=n;i++)

for(int j=i;j<=n;j++)

{if(i這題其實是有限制條件版的動態規劃。它說不能超過對角線,那只要把棋盤分成兩部分,求出在上半部分三角形的可能的情況,最後乘2就好了。

先確定初始條件及邊界條件,邊界上的可能性都是1。

然後除了對角線上其他f[i][j]=f[i-1][j]+f[i][j-1] ,對角線上只可能有乙個方向來的f[i][j]=f[i-1][j](我算的是上三角形)

杭電 2067 小兔的棋盤

problem description 小兔的叔叔從外面旅遊回來給她帶來了乙個禮物,小兔高興地跑回自己的房間,拆開一看是乙個棋盤,小兔有所失望。不過沒過幾天發現了棋盤的好玩之處。從起點 0,0 走到終點 n,n 的最短路徑數是c 2n,n 現在小兔又想如果不穿越對角線 但可接觸對角線上的格點 這樣的...

hdu2067 小兔的棋盤

思路 遞推 include includeusing namespace std define ll long long ll dp 36 36 int cas 1 int main description 小兔的叔叔從外面旅遊回來給她帶來了乙個禮物,小兔高興地跑回自己的房間,拆開一看是乙個棋盤,小...

HDU 2067 小兔的棋盤

problem description 小兔的叔叔從外面旅遊回來給她帶來了乙個禮物,小兔高興地跑回自己的房間,拆開一看是乙個棋盤,小兔有所失望。不過沒過幾天發現了棋盤的好玩之處。從起點 0,0 走到終點 n,n 的最短路徑數是c 2n,n 現在小兔又想如果不穿越對角線 但可接觸對角線上的格點 這樣的...