UVa 10375 Choose and divide

思路:

排列组合。

#include <cstdio>



int main()

{

    int p, q, r, s;

    while (~scanf("%d %d %d %d", &p, &q, &r, &s))

    {

        if (p - q < q)

            q = p - q;

        if (r - s < s)

            s = r - s;



        double ret = 1.0;

        for (int i = 1; i <= q || i <= s; ++i)

        {

            if (i <= q)

                ret = ret * (p - q + i) / i;

            if (i <= s)

                ret = ret / (r - s + i) * i;

        }



        printf("%.05lf\n", ret);

    }

    return 0;

}

 

你可能感兴趣的:(ide)