演算法訓練 數的劃分

2021-07-27 11:58:27 字數 734 閱讀 6448

演算法訓練 數的劃分

問題描述

將整數n分成k份,且每份不能為空,任意兩份不能相同(不考慮順序)。

例如:n=7,k=3,下面三種分法被認為是相同的。

1,1,5; 1,5,1; 5,1,1;

問有多少種不同的分法。

輸入格式

n,k輸出格式

乙個整數,即不同的分法

樣例輸入

7 3樣例輸出

4 資料規模和約定

6#define maxn 300

int f[maxn][maxn];

int n,m;

int main()

分析:遞迴問題,step表示當前剩餘的數需要分成的份數~~

把n分成k份,只需第乙個數等於i,計算從i等於1一直到i等於n/k,然後把剩餘的n-i分成k-1份的種類數...

front為剩餘的要劃分的數的前乙個數,每次i從front開始一直到n/step結束,這樣才能保證得到的劃分方式是不遞減的,才能保證不會有重複的情況產生~

#include using namespace std;

int cnt = 0;

void dfs(int front, int n, int step)

for(int i = front; i <= n / step; i++)

dfs(i, n - i, step - 1);

}int main()

演算法訓練 數的劃分

學習 問題描述 將整數n分成k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k輸出格式 乙個整數,即不同的分法 樣例輸入 7 3樣例輸出 4 資料規模和約定 6 includ...

藍橋杯 演算法訓練 數的劃分

問題描述 將整數n分成k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k輸出格式 乙個整數,即不同的分法 樣例輸入 7 3樣例輸出 4 資料規模和約定 6 講道理自己第一眼看...

藍橋杯 ALGO 22演算法訓練 數的劃分

問題描述 將整數n分成k份,且每份不能為空,任意兩份不能相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 n,k輸出格式 乙個整數,即不同的分法 樣例輸入 7 3樣例輸出 4資料規模和約定6 分析 遞迴問題,ste...