乙個環上有10個點,編號為0-9,從0點出發,每步可以順時針到下乙個點,也可以逆時針到上乙個點,求:
經過n步回到0點有多少種不同的走法?
舉例:如果n=1,則出發只能到1或者9,不可能回到0,共0種走法。如果n=2,則從0出發有4條路徑:0->1->0,0->1->2,0->9->8,0->9->0,其中有兩條回到了0點,故有兩種走法。
思路:考慮用動態規劃的思想,只可能從左邊或者右邊相鄰點回到原點,即先到旁邊的點,看看有多少回來的方法。
所以動態轉移方程為dp[k][n]=dp[k-1][(n-1+10)%10]+dp[k-1][(n+1)%10] //其中,第一維為具體步數,第二維為位置。取模保證範圍在0-n-1,初始n=0,從0號位置開始。
遞迴寫法:
#include #include using namespace std;
int dfs(int n,int pos)
int main()
; dp[0][0]=1;
for(int i=1;i<=n;i++) //步數
}cout
}
求職面試 智力題 智力題彙總
25匹馬 5個跑道 找top3,要多少次比賽 top3 推廣 找top5 解答 最後拿完對局 請設計乙個遊戲 地面上擺放著若干顆石子,甲乙兩人輪流從中提取石子,每人每輪最少提取2顆,最多提取5顆,取到最後一顆石子者為勝 請設定這堆石子的顆數 至少50顆 使先手有必勝的策略,並說明你的策略 設定的石子...
面試智力題 硬幣問題
題目一 你的面前有30個硬幣,其中有10個正面朝上,20個反面朝上,混亂在一團。要求 現在用厚布遮住你的眼睛。要你把30個硬幣分成2團,每團正面朝上的硬幣個數相等。問 你要怎麼分?不能用手去觸控感覺,也沒有其他人幫忙。題目二 我們用4位二進位制數表示硬幣的狀態。由於最終的結果只要4枚硬幣狀態一樣就行...
面試智力題 硬幣問題
題目一 你的面前有30個硬幣,其中有10個正面朝上,20個反面朝上,混亂在一團。要求 現在用厚布遮住你的眼睛。要你把30個硬幣分成2團,每團正面朝上的硬幣個數相等。問 你要怎麼分?不能用手去觸控感覺,也沒有其他人幫忙。題目二 我們用4位二進位制數表示硬幣的狀態。由於最終的結果只要4枚硬幣狀態一樣就行...