奇異的家族 動態規劃

2022-08-26 07:27:10 字數 937 閱讀 1750

有一種奇怪的大家族,這種家族裡的人要麼沒有孩子,要麼就有兩個孩子。已知某個這種家族共有n個人,家族中共有k代人。你能告訴我這樣的乙個家族可能的家譜結構的種數除以9901的餘數是多少嗎?

輸入包括一行,包括兩個被空格分開的整數,第乙個為家族中的人數n(3≤n≤200),第二個為家族中的代數k(1 < k

< 100)。

輸出僅一行,包含乙個整數,表示這樣的乙個家族可能的家譜結構的種數除以9901的餘數。

樣例1輸入:

5 3輸出:

2回答:這個題目很銷魂。真正有意義的題幹就一句話:有一種奇怪的大家族,這種家族裡的人要麼沒有孩子,要麼就有兩個孩子。已知某個這種家族共有n個人,家族中共有k代人。

估計題目的作者在這裡想定義了一種二叉樹(節點要麼沒有孩子,要麼有兩個孩子)。想必作者對族譜結構並不熟悉,族譜上是存在雙親的,不可能是二叉樹。

這個先不說,看作者是怎麼定義族譜結構的,我只能按照兩個樣例去猜:

為什麼會有特殊情形呢?這是我用了好幾組資料求結果,為了尋求解釋的一致性得出的結論。

題目本身對n個人的解釋是存在矛盾之處的:

在族譜的垂直層次上,n個人是不分長輩晚輩的,交換兩個節點族譜不變

在族譜的水平層次上,對稱時,葉子結點是不分兄弟的;不對稱時,又是區分的

參考了別人的**,自己不是很懂。答案**

#include

#include

#define n

201#define

mod 9901

using

namespace std;

intdp[n][n], n, k; //

intmain()

for (int i

= 2; i <= k; i++)}}

cout<<(dp[n][k] - dp[n][k - 1] + mod) %

mod<

}

ruby的動態性 eval 家族

eval 將字串作為 來求值,最直接,也是最危險的方法。編寫乙個讓別人在執行時鍵入方法名的方法 print method name m gets.chomp eval def puts hi end eval m 如果在執行時,輸入abc,那麼eval求值的字串是 def abc puts hi e...

動態規劃 什麼是動態規劃?

先來看看 資訊學奧賽一本通第5版 是怎麼說的 動態規劃程式設計是對解最優化問題的一種途徑 一種方法,而不是一種特殊演算法。不像前面所述的那些搜尋或數值計算那樣,具有乙個標準的數學表示式和明確清晰的解題方法。動態規劃程式設計往往是針對一種最優化問題,由於各種問題的性質不同,確定最優解的條件也互不相同,...

mysql動態規劃 動態規劃

動態規劃 能夠動態規劃的問題具有以下特點 可分解成規模更小的子問題 子問題的結果可復用 關鍵是要理解狀態轉移方程的含義就好啦!數字三角形 問題描述 在數字三角形尋找從頂到底的路徑,使得路徑經過的數字之和最大。規定每一步只能往左下或右下走,求出最大路徑和。遞迴解法 include include us...