uva 10375 Choose and divide

来源:互联网 发布:cpu散热器哪个好 知乎 编辑:程序博客网 时间:2024/05/17 00:53

因为结果不大于100,000,000。所以说明C(p,q)和C(r,s)不会差很多,化简一下直接乘除即可,不需要分解质因数。

#include <iostream>#include<stdio.h>using namespace std;int p,q,r,s;double ans,ans1,ans2,ans3;int main(){    while(scanf("%d %d %d %d",&p,&q,&r,&s)!=EOF)    {        ans = 1;        q = min(q,p-q);        s = min(s,r-s);        for(int i = 1;i <= max(q,s);i++)        {            if(i <= q) ans=ans/i*(p-q+i);            if(i <= s) ans=ans/(r-s+i)*i;        }        printf("%.5lf\n",ans);    }    return 0;}



0 0
原创粉丝点击