题目描述
将整数 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.
【题目来源】
NOIP 2001 提高组第二题
cpp#include<bits/stdc++.h> using namespace std; int n,k; int ret; int ans; void dfs(int pos,int begin) { if(pos==k) { if(ret==n) { ans++; } return; } for(int i=begin;i<=n;i++) { if((ret+(k-pos)*i)>n) return ; ret+=i; dfs(pos+1,i); ret-=i; } } int main() { cin>>n>>k; dfs(0,1); cout<<ans<<endl; return 0; }
洛谷 P1025 [NOIP 2001 提高组] 数的划分
Liangwei Lin2025-11-30 11:57
相关推荐
wanderist.35 分钟前
线性筛法详解:从筛质数到欧拉函数、Möbius 函数与约数函数All for pursuit.1 小时前
【设计-1】208.实现Trie (前缀树)weixin_307779131 小时前
C++代码实现MATLAB中的crossval函数功能青少儿编程课堂1 小时前
背包问题(0/1 背包与完全背包)解题精讲——动态规划入门光影少年2 小时前
为什么 JavaScript 中 0.1 + 0.2 !== 0.3,如何让其相等?HEJOO92 小时前
Linux 设备驱动系列——使用全局工作队列Code_Solitude2 小时前
c语言:递归edtoplort3 小时前
OpenAI紧急叫停GPT-6.1 Astra训练,奥尔特曼为何踩刹车蒜香可达鸭3 小时前
让视频生成流水线跑不崩:一个事件溯源的多 Agent 可靠执行框架小羊没烦恼!3 小时前
系统内部模块(子系统)之间的耦合以及模块(子系统)划分