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