当前位置: 首页> 科技> 能源 > 用java开发网站的步骤_暴富建站_什么时候友情链接_百度sem竞价推广

用java开发网站的步骤_暴富建站_什么时候友情链接_百度sem竞价推广

时间:2025/7/11 22:10:38来源:https://blog.csdn.net/m0_74797130/article/details/146540154 浏览次数:0次
用java开发网站的步骤_暴富建站_什么时候友情链接_百度sem竞价推广

题目描述

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

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

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

问有多少种不同的分法。

输入格式

n,k (6<n≤200,2≤k≤6)

输出格式

1 个整数,即不同的分法。

输入输出样例

输入 #1复制

7 3

输出 #1复制

4

说明/提示

四种分法为:
1,1,5;
1,2,4;
1,3,3;
2,2,3.

#include<iostream>
#include<vector>
int n, k;
int ans=0;
int start=1;//记录前一个数字,保证数列是递增的
int sum = 0;
using namespace std;
void dfs(int x) {if (x == k+1) {if (sum == n) {ans++;}//要进行判断,比如n为7时,1,1,1就是不满足的return;}for (int i = start; i <= n-sum; i++) {//i <= n-sum可以进行剪枝,数列是递增的,后面的数字是越来越大的,比如n为7时,1,4再往后面循环1,4,4,和是9超过了7,1,4,5更不用说,所以是会被剪掉的start = i;sum += i;dfs(x + 1);sum -= i;//记得返回,回溯后上一层还要继续用}
}
int main() {cin >> n >> k;dfs(1);cout << ans;return 0;
}

关键字:用java开发网站的步骤_暴富建站_什么时候友情链接_百度sem竞价推广

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: