題目描述
將整數 \(n\) 分成 \(k\) 份,且每份不能為空,問有多少種不同的分法。當 \(n=7, k=3\) 時,下面三種分法被認為是相同的:\(1,1,5\); \(1,5,1\); \(5,1,1\).
輸入格式
一行兩個數 \(n\) , \(k\)。
輸出格式
一行乙個整數,即不同的分法數。
樣例
樣例輸入
7 3
樣例輸出4
樣例解釋
四種分法為:\(1,1,5\);\(1,2,4\);\(1,3,3\);\(2,2,3\)。
資料範圍與提示
\(6 \leq n \leq 200,\)
\(2 \leq k \leq 6\)。
簡單搜尋剪枝。
每次從上次的開始搜尋。然後如果沒法取的比上乙個大就返回。
#include#include#include#include#include#include#define int long long
#define rep(i,a,n) for(register int i=a;i<=n;++i)
#define dwn(i,n,a) for(register int i=n;i>=a;--i)
using namespace std;
int n,k,ans;
inline int read()
while(isdigit(ch))
return x*f;
}void write(int x)
void dfs(int rem,int last,int step)
if(rem&&step>=k)return;
if(last>rem&&steprep(i,last,rem)
return;
}signed main()
A 數的劃分
a 數的劃分 將整數n 分成 k份,且每份不能為空,任意兩個方案不相同 不考慮順序 例如 n 7,k 3,下面三種分法被認為是相同的。1,1,5 1,5,1 5,1,1 問有多少種不同的分法。輸入格式 第一行有兩個整數 n,k 6sample input 7 3 sample output 解題思路...
wikioi 數的劃分
題目描述 description 將整數n分成k份,且每份不能為空,任意兩種劃分方案不能相同 不考慮順序 例如 n 7,k 3,下面三種劃分方案被認為是相同的。1 1 5 1 5 1 5 1 1 問有多少種不同的分法。輸入描述 input description 輸入 n,k 6 題解 f i,j ...
1039 數的劃分
題目描述 description 將整數n分成k份,且每份不能為空,任意兩種劃分方案不能相同 不考慮順序 例如 n 7,k 3,下面三種劃分方案被認為是相同的。1 1 5 1 5 1 5 1 1 問有多少種不同的分法。輸入描述 input description 輸入 n,k 6輸出描述 outpu...