Contents
Problem
特別注意可以並列。
Solution
dp[n][m]
: 有幾種組合符合,n
是總共幾匹馬,m
是總共多少名次。
e.g.dp[3][2]
(3 匹馬,名次共有 2 名) = 6 => (13)2, 1(23), (23)1, 2(13), (12)3, 3(12)。 ()為並列dp[4][1]
= 1 => (1234)
情況一:名次只有 一名 時,當然就只有一種組合,就是全部人並列。
情況二: 兩名 以上時會等於:
在 [n-1][m-1]
的所有組合中,第 n 匹馬可以 插入 該組合中除了並列外的任一位置(* m),這樣就可以讓名次多一了。
e.g. [4][3] 可以從 [3][2] 中得出: (13)2 => 4(13)2, (13)42, (13)24
加上[n-1][m]
的所有組合中,第 n 匹馬可以去 並列 任意名次(* m),而不會使總名次增加。
e.g. [4][3] 可以從 [3][3] 中得出: 123 => (41)23, 1(42)3, 12(43)
情況三:n 等於 m,沒有任何並列(其實也包含在情況二就是了)[n-1][m]
就會等於零了。
1 | dp[n][m] = |
Code
1 |
|