hdu4503(概率的逆向思維)

題目來源:2013騰訊編程馬拉松初賽第〇場(3月20日)  

題意:已知n個小朋友,他們認識的人數,現在要選三個人,要求他們都相互認識或者都相互不認識。

思路:直接求不好求,所以從反面考慮,求對於每個人,選一個人和他認識,選一個人和他不認識。

代碼如下:

#include<cstdio>

int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int n;
        scanf("%d",&n);
        int ans = 0;
        for(int i = 0; i < n; i++)
        {
            int k;
            scanf("%d",&k);
            ans = ans + (n-k-1)*k;
        }
   //     printf("%d\n",ans);
        ans /= 2;
        printf("%.3lf\n",1 - 1.0*ans /(n*(n-1)*(n-2)/6) );
    }
    return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章