將整數 n
n 分成 k
k 份,且每份不能為空,任意兩個方案不相同(不考慮順序)。
例如: n=7n=
7 , k=3k=
3 ,下面三種分法被認為是相同的。
1,1,51,
1,5 ;
1,5,11,
5,1 ;
5,1,15,
1,1 .
問有多少種不同的分法。
輸入格式:
n,kn,k
( 6620
0 , 2 \le k \le 62≤
k≤6 )
輸出格式:11
個整數,即不同的分法。
輸入樣例#1:
複製
7 3
輸出樣例#1:
複製
4
四種分法為:
1,1,51,
1,5;
1,2,41,
2,4;
1,3,31,
3,3;
2,2,32,
2,3
題目分析:假定給的數字是7,3
.我們可以把7這個數字一步一步拆開,先拆分成1 6,然後我們在再6的基礎上在拆分出兩個數字。第乙個數字是1的情況分析完後,在分析第乙個數字不是1的情況,我們可以看成這樣1 6拆分為1 2 4.然後在把4拆分為3個數字一次加到其他三位上,這裡要注意一定要拆最小的那個數字,假如是1 1 5拆5的話會產生重複解,所以拆4會減少重複解。
綜上所述這道題的遞推式為:f[i][j]=f[i-1][j-1]+f[i-j][j];其中i表示拆分的數字,j表示拆分的位數,用陣列來記錄答案。
#includeusing namespace std;
int s[200][200];
int n,k;
int main()
for(int i=2;i<=k;i++)
for(int i=2;i<=n;i++)
}printf("%d\n",s[n][k]);
}return 0;
}
洛谷1025 數的劃分 搜尋
將整數n分成k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k 6輸出格式 乙個整數,即不同的分法。輸入樣例 1 7 3輸出樣例 1 4四種分法為 1,1,5 1,2,4 1...
洛谷 P1025 數的劃分
題目描述 將整數n分成k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入輸出格式 輸入格式 n,k 6 n 200,2 k 6 輸出格式 乙個整數,即不同的分法。輸入輸出樣例 輸入樣例...
洛谷P1025 數的劃分
將整數n分成k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k 6 輸出格式 乙個整數,即不同的分法。輸入樣例 1 7 3 輸出樣例 1 4 四種分法為 1,1,5 1,2...