蒟蒻想问为什么直接计算不可以,要打表啊!!!(WA三个点2,9,10)
查看原帖
蒟蒻想问为什么直接计算不可以,要打表啊!!!(WA三个点2,9,10)
601006
CSUST_GXL楼主2022/1/17 13:46
#include<iostream>
#include<algorithm>
using namespace std;
int n, a, b;
unsigned long long C[55][55], t,temp[55];
unsigned long long calculate(long long nn, long long mm) {//直接计算组合数会超时......(其实我也不知道为什么,反正会错) 
	if (!mm||!nn||mm<0||nn<0) return 1;
	unsigned long long  i, ret = 1;
	for (i = nn; i > nn - mm; i--) ret *= i;
	for (i = mm; i >= 1; i--) ret /= i;
	return ret;
}
int main() {
	int i, j;
	unsigned long long ans = 0;
	cin >> n >> a >> b;
//	build();
	for (i = 0; i <= a; i++) temp[i] = calculate(i + n - 1, n - 1);
	for (i = 0; i <= b; i++) {
		t = calculate(i + n - 1, n - 1);
		for (j = 0; j <= a; j++) ans += t * temp[j];
	}
	cout << ans;
	return 0;
}
2022/1/17 13:46
加载中...