演算法訓練 數的劃分
問題描述
將整數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...