AcWing 885. 求组合数 I
原题链接
简单
作者:
crayon不小心
,
2021-02-22 11:43:32
,
所有人可见
,
阅读 442
#include <iostream>
#include <algorithm>
using namespace std;
const int mod = 1e9 + 7, N = 2010;
int s[N][N];
int main()
{
int n;
cin >> n;
// 从 A 个苹果里面挑选 B 个苹果 A 中存在一个苹果 C
/*1. 选 C 则剩下 A - 1 个苹果 选 B - 1 个苹果 -->s[A - 1][B - 1]
*2. 不选 C 则剩下A - 1 个苹果 仍热要选择 B 个苹果 -->s[A - 1][B]
* 3. 初始化 dp思想 s[i][j] = s[i-1][j-1] + s[i -1][j] */
for(int i = 0; i < N; i++)
for(int j = 0; j <= i; j++)
if(!j) s[i][j] = 1;
else s[i][j] =(s[i-1][j-1] + s[i-1][j]) % mod;
while(n -- )
{
int a,b;
cin >> a >> b;
cout << s[a][b] << endl;
}
return 0;
}