一道有意思的组合数学
由于五个变量等价,只需考虑
i2
的贡献
固定 i ,其它数的和为 n - i ,由隔板法得剩下4个数的取值有
C3n−i−1
种方案
于是i2的贡献=∑i=1n−4i2×C3n−i−1
乘5得最终答案,注意数据范围,会爆int
#include <cstdio>
typedef long long ll;
const int mod = 7477777;
ll C(ll n) {return n * (n - 1) * (n - 2) / 6;}
int main()
{
int T;
scanf("%d", &T);
for(int ca = 1; ca <= T; ca++)
{
int n;
scanf("%d", &n);
ll ans = 0;
for(int i = 1; i <= n - 4; i++)
ans = (ans + C(n - i - 1) % mod * i * i) % mod;
printf("Case %d: %lld\n", ca, 5 * ans % mod);
}
return 0;
}