洛谷P1025 數的劃分

2021-08-17 02:16:05 字數 869 閱讀 6390

將整數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;

解法一:動歸

參考題解:

#include#include#includeusing namespace std;

int f[201][8];

int main()

for (int i = 2; i <= n;i++)

for (int j = 1; j <= k; j++)

cout << f[n][k];

return 0;

}

解法二:dfs

參考題解:

下面是兩種不同的dfs寫法

/*#includeusing namespace std;

int n, k;

int dfs(int sum,int step,int now)

int main()

if (step == k) return;

for (int i = now; i <= sum; i++)

dfs(sum - i, step + 1, i);

}int main()

洛谷 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...

洛谷p1025 數的劃分

數的劃分 傳送門 演算法的話,dfs 剪枝 據說是01年之前的noip提高組 思路 這道題是求把n無序的劃分成k份的方案數,最直接的搜尋方法是依次列舉x1,x2 xk的值,然後判斷,顯然這麼搜尋的話,很容易就tle了qwq。所以我們需要剪枝,這道題用到的主要是可行性剪枝和上下界剪枝 因為本題不考慮分...