#include <iostream> #include <string> #include <cstdio> #include <vector> #include <algorithm> #include <deque> #include <map> #include <stack> using namespace std; typedef long long LL; #define INF 0x3f3f3f3f #define MAXN 200 + 99 /* 递推: f(n,m) 把一个数字n分为m份 分为两种情况: (1) 划分的数字当中没有1,可以看做把划分后的每个数字都加上1 就是f(n-m,m) (2) 划分的数字当中有1,可以看做f(n-1,m-1) f(n,m) = f(n-1,m-1) + f(n-m,m) */ int a[MAXN][MAXN]; int main() { int i, j; cin >> i >> j; a[1][1] = 1; for (int i = 2; i < MAXN; i++) { for (int j = 1; j <= i; j++) { a[i][j] = a[i - 1][j - 1] + a[i - j][j]; } } cout << a[i][j] << endl; }