工作空閑之餘,蒜頭君經常帶着同僚們做遊戲,最近蒜頭君發明了一個好玩的新遊戲:nn 位同僚圍成一個圈,同僚 A 手裡拿着一個兔妮妮的娃娃。蒜頭君喊遊戲開始,每位手裡拿着娃娃的同僚可以選擇将娃娃傳給左邊或者右邊的同學,當蒜頭君喊遊戲結束時,停止傳娃娃。此時手裡拿着娃娃的同僚即是敗者。
玩了幾輪之後,蒜頭君想到一a個問題:有多少種不同的方法,使得從同僚 A 開始傳娃娃,傳了 mm 次之後又回到了同僚 A 手裡。兩種方法,如果接娃娃的同僚不同,或者接娃娃的順序不同均視為不同的方法。例如 1−>2−>3−>11−>2−>3−>1 和 1−>3−>2−>11−>3−>2−>1 是兩種不同的方法。
輸入格式
輸入一行,輸入兩個整數 n,m(3≤n≤30,1≤m≤30)n,m(3≤n≤30,1≤m≤30),表示一共有 nn 位同僚一起遊戲,一共傳 mm 次娃娃。
輸出格式
輸出一行,輸出一個整數,表示一共有多少種不同的傳娃娃方法。
樣例輸入
3 3
樣例輸出
2
本體的難點是分出階段,找出決策,列出狀态轉移方程。
我們把dpi看做所剩i步,到達同僚j所有種情況數。
看例題:我們編号3位同僚0~2,如果求0~0的所有情況,那麼就要知道在還剩下1步的情況下,
到達1,2的所有情況,即dp0=dp1+dp1;
是以,我們得出狀态轉移方程dpi=dpi+1+dpi-1.//思路對的,不考慮環路
(因為是環路,是以應該改為dpi=dpi+1+dpi+1;)
最後,我們列出特殊情況:
即當所剩步數是m時,隻有dp0=1
(自己到自己肯定不需要走嘛,其他dp0=0,因為0号到其他肯定要走路,不存在0~其他 無需走路的情況)