クロッカー フルーツを見つけるには、リンクはリンゴを皿に置く必要があります。したがって、リンクはすべての遊び方を試す必要があります。
N 個の同じ皿に M 個の同じリンゴが置かれ、いくつかの皿は空のままにしておくことができます. 全部でいくつの異なる方法がありますか?
注: 5、1、1 と 1、5、1 は同じ方法です。
入力
最初の行は、テスト データの数 t です (0 <= t <= 20)。次の各行には、スペースで区切られた 2 つの整数 M と N が含まれています。1<=M、N<=10。
出力
出力はメソッドの数に対応します
入力例 1
1
7 3
出力サンプル 1
8
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
int k, n, m;
cin >> k;
while (k--)
{
int dp[13][13] = {
0 }; //:指将i个苹果放到j 个框的总方法数
cin >> m >> n;
if (n > m) n = m;
int i, j;
for (i = 0; i<= m; i++) dp[i][1] = 1;
for (i = 0; i <= n; i++) dp[0][i] = 1;
for(i=1;i<=m;i++)
for (j = 2; j <= n; j++)
{
dp[i][j] = dp[i][j - 1];
if (i >= j) dp[i][j] += dp[i - j][j];
}
cout << dp[m][n] << endl;
}
}