【问题描述】
设S是一个具有n个元素的集合,S={a1,a2,……,an},现将S划分成k个满足下列条件的子集合S1,S2,……,Sk ,且满足:
【问题描述】
设S是一个具有n个元素的集合,S={a1,a2,……,an},现将S划分成k个满足下列条件的子集合S1,S2,……,Sk ,且满足:
#include<bits/stdc++.h> using namespace std; int n,k; int dp[35][35]; int main() { scanf("%d%d",&n,&k); for(int i=1;i<=n;i++) dp[i][1]=1,dp[i][i]=1; for(int i=1;i<=n;i++) for(int j=2;j<=i;j++) { dp[i][j]=dp[i-1][j-1]+j*dp[i-1][j]; //i球j盒 } printf("%d",dp[n][k]); return 0; }
原文:https://www.cnblogs.com/conprour/p/14306107.html