28 lines
646 B
C++
28 lines
646 B
C++
#include <bits/stdc++.h>
|
||
|
||
//https://www.luogu.com.cn/blog/x4Cx58x54/solution-p2638
|
||
//经典题
|
||
|
||
using namespace std;
|
||
typedef unsigned long long ULL;
|
||
int n, a, B;
|
||
ULL ans;
|
||
|
||
//求组合数的优化后办法
|
||
//优点:从1开始除和乘,可以防止过早溢出和除法除不尽
|
||
ULL C(int n, int m) {
|
||
ULL sum = 1;
|
||
for (int i = 1; i <= m; i++)
|
||
sum = sum * (n - m + i) / i;
|
||
return sum;
|
||
}
|
||
|
||
int main() {
|
||
cin >> n >> a >> b;
|
||
for (int i = 0; i <= a; i++)
|
||
for (int j = 0; j <= b; j++)
|
||
ans += C(n + i - 1, n - 1) * C(n + j - 1, n - 1);
|
||
|
||
cout << ans << endl;
|
||
return 0;
|
||
} |