BOJ 288

来源:互联网 发布:初中单词背诵软件 编辑:程序博客网 时间:2024/04/29 16:19

诶,数学弱爆了..比赛时候没推出来

组合数学里的母函数(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);    }}