動態規劃之分組問題

2021-08-28 14:55:00 字數 783 閱讀 5529

原文:

將n個人分成若干隊,每隊人數可以是1、2或者3人。

已知n,求組隊方案數。

輸入包含多組測試資料(約1000組),每組資料佔一行,包含乙個數字n(0<=n<=20),表示acm集訓隊的隊員人數;n為0,表示輸入結束。

請輸出n個隊員所有可能的組隊方案數,每組輸出佔一行。

1
2
3
4
5
0

1
2
5
14
記dp[i]為i個人分組的方案數。顯然dp[1]=1,dp[2]=2,dp[3]=5。i>=4時,考慮最後乙個人,他可以一人一隊,對方案數的貢獻是dp[i-1];也可以和另外i-1人中的一人組隊,貢獻是c(i-1,1)xdp[i-2];還可以和另外i-1人中的兩人組隊,貢獻是c(i-1,2)xdp[i-3],所以dp[i]=dp[i-1]+    c(i-1,1)xdp[i-2]+   c(i-1,2)xdp[i-3]。注意資料量會爆int,要用long long。 

疑問?第三次  c(i-1,2)xdp[i-3]  為什麼是(i-1)*(i-2)/2*a[i-3]呢,,還是不太明白。希望有大佬幫忙解決。

#include

#include

using namespace std;

long long a[30];

int main()

int n;

while(scanf("%d",&n),n)

}

動態規劃之分蛋糕

003 分蛋糕 總時間限制 1000ms 記憶體限制 65536kb 描述有一塊矩形大蛋糕,長和寬分別是整數w h。現要將其切成m塊小蛋糕,每個小蛋糕都必須是矩形 且長和寬均為整數。切蛋糕時,每次切一塊蛋糕,將其分成兩個矩形蛋糕。請計算 最後得到的m塊小蛋糕中,最大的那塊蛋糕的面積下限。假設w 4,...

分組揹包(動態規劃)

description 有n件物品和乙個容量為v的揹包。第i件物品的費用是c i 價值是w i 這些物品被劃分為若干組,每組中的物品互相衝突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。input 第一行 三個整數,v 揹包容量,v 200 n 物品數量,...

動態規劃之禮品分組

description 元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得 的紀念品價值相對均衡,他要把購來的紀念品根據 進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的 之和不能超過乙個給定的整數。為了保證在盡量短的時間內發完所有紀念品,樂樂希望分組的數目最...