【NOIP2001提高组】数的划分

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

题目描述

将整数n分成k份,且每份不能为空,任意两种不能相同(不考虑顺序)。

例如:n=7,k=3,下面三种分法被认为是相同的。

1,1,5;

1,5,1;

5,1,1;

问有多少种不同的分法。

输入

每个测试文件只包含一组测试数据,每组输入两个整数n和k(6

输出

对于每组输入数据,输出一个整数,即不同的分法。

下面是对样例数据的说明:

样例中的四种分法是:

1,1,5

1,2,4

1,3,3

2,2,3

样例输入

7 3

样例输出

4

提示

来源

NOIP全国联赛提高组 2001年NOIP全国联赛提高组 

#include
using namespace std;
int a[25],s,n,m;
void dfs(int d,int r){
	if(d==m+1){
		if(r==0){
			if(d>=1){s+=1;}}}else{
		for(int i=a[d-1];i<=r;i++){
			a[d]=i;
			dfs(d+1,r-i);}}}
int main(){
	cin>>n>>m;a[0]=1;dfs(1,n);cout<

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

关注,点赞,收藏!

你可能感兴趣的:(c++,深度优先)