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;
}
复制代码

 

posted @   kedebug  阅读(205)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示