- C++
新手求各路大佬帮忙,拜托
- 2022-8-9 21:15:18 @
题目描述
设S是一个具有n个元素的集合,S=〈a1,a2,……,an〉,现将S划分成k个满足下列条件的子集合S1,S2,……,Sk且满足: 1.Si≠∅ 2.Si∩Sj=∅ (1≤i,j≤k,i≠j) 3.S1∪S2∪S3∪…∪Sk=S
则称S1,S2,……,Sk是集合S的一个划分。
它相当于把S集合中的n个元素a1,a2,……,an放入k个(0<k≤n<30)无标号的盒子中,使得没有一个盒子为空。请你确定n个元素a1,a2,……,an放入k个无标号盒子中去的划分数S(n,k)。
输入格式
输入一行两个数,给出n和k。
输出格式
输出一行一个数,n个元素a1,a2,……,an放入k个无标号盒子中去的划分数S(n,k)。
样例数据
输入数据 1
23 7
输出数据 1
4382641999117305
3 条评论
-
kangyuecheng LV 4 @ 2022-12-3 13:30:38
@shootrqy #include using namespace std; long long calculate(long long n,long long k) { if(n<k||k0) return 0; if(nk||k==1) return 1; return calculate(n-1,k-1)+k*calculate(n-1,k); } int main() { long long n,k; cin>>n>>k; cout<<calculate(n,k)<<endl; return 0; }
-
2022-8-12 20:47:36@
题目格式一堆问题,差评!
-
2022-8-9 21:19:34@
有人可以把题目解释一下吗
- 1