诶,数学弱爆了..比赛时候没推出来
组合数学里的母函数(x+x^2+……+x^n)^m的展开式中x^k的系数
整理得x^m * (1-x^n)^m * (1-x)^(-m)就可以得到x^k的系数
#include <cstdio>
int main()
{
int n, m, k;
while (scanf("%d%d%d", &n, &m, &k) != EOF)
{
double ans = 0;
if (k < m)
{
printf("%.2lf\n", ans);
continue;
}
for (int i = 0; i <= (int)((k - m) / n); i++)
{
double tmp = (double)m;
for (int j = k - i * n - m + 1; j <= k - i * n - 1; j++)
tmp *= j;
for (int j = 1; j <= i; j++)
tmp /= j;
for (int j = 1; j <= m - i; j++)
tmp /= j;
ans += (1 - 2 * (i % 2)) * tmp;
}
for (int i = 1; i <= m; i++)
ans /= n;
printf("%.2lf\n", ans);
}
}