將整數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,3,3;2,2,3;
因為1,1,5; 1,5,1; 5,1,1;算一種情況。
所以規定第乙個數<=第二數<=……<=最後乙個數……這樣就不會重複。
這題標籤是遞推,但是資料範圍很小,就不需要去浪費時間找遞推式了。(shenmegui)
var s,n,m:longint;//s記錄方案數
procedure try(u,last,deep:longint);//dfs,deep代表已經劃分了的份數,last代表第deep份的數值,u代表數字n劃分deep份後剩下的數量
var i:longint;
begin
____if deep=m then//如果已經劃分了m層
____begin
________inc(s);//方案數+1
________exit;//退出當前子程式
____end else//否則
____for i:=last to u div 2 do//繼續劃分,由於下乙份的數值要》=這乙份的數值,所以此份的值最多到u div 2
________try(u-i,i,deep+1);
end;
begin
____read(n,m);//輸入
____try(n,1,1);
____write(s);//輸出
end.
洛谷 P1025 數的劃分 搜尋
將整數nn分成kk份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7n 7,k 3k 3,下面三種分法被認為是相同的。1,1,51,1,5 1,5,11,5,1 5,1,15,1,1.問有多少種不同的分法。輸入格式 n,k 6輸出格式 1個整數,即不同的分法。輸入樣例 1 7 3輸出樣...
洛谷 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...