poj 1664 放蘋果 設定獨立狀態,動態規劃

2022-05-13 20:58:13 字數 690 閱讀 2808

神狀態題。。。。經波神,旭神輪番普渡,方ac。。。道路崎嶇啊。。。

狀態 dp( i, j )

此題狀態意義,要能區分重複。

i 個蘋果,使用 j 個盤子放置,不同方案數量。

狀態轉移方程,從 當前是否有盤子空 來區分,這樣就不會存在重複情況了。

一,若存在空盤子,則可能分為1,2,3,。。。,j個, 但是狀態 dp( i, j-1 )   j-1個盤子放置i個蘋果,包含了2,3,。。,j-1個空的情況,所以此時等價於 dp( i, j-1 )

二,若不存在空盤子,(此時要滿足條件 i >= j ) , 那麼 每乙個盤子放乙個蘋果後,剩下 i - j 個蘋果 放置在 j 個盤子上,則此時可能存在空盤,則轉換成了 dp( i-j, j )

所以 轉移方程為

dp(i, j ) = dp(i,j-1)+ dp(i-j,j)  // 第二個要滿足 i >= j 

解題**

#include#include

#include

typedef

long

long

ll;ll dp[

15][15

];int

main()

}printf(

"%lld\n

", dp[n][m] );

}return0;

}

poj1664放蘋果 遞迴

放蘋果time limit 1000ms memory limit 10000k total submissions 23149 accepted 14694 description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1...

poj 1664 放蘋果 遞推

解題思路 我們不妨令f m,n 表示m個蘋果放到n個盤子裡有多少種放法,下面對不同的情況給予討論 1 當盤子數為1的時候,只有一種放法就是把所有蘋果放到乙個盤子裡。2 當蘋果數為0的時候,也只有一種放法。3 當m n時,也分兩種情況討論,一種是至少有乙個盤子裡不放蘋果,這樣子就相當於f m,n 1 ...

poj 1664 放蘋果 遞推

放蘋果time limit 1000ms memory limit 10000k total submissions 33295 accepted 20648 description 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1...