hdu 4503 湫湫系列故事——植树节

来源:互联网 发布:mac os x ios 编辑:程序博客网 时间:2024/04/27 22:16

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4503

这个是单色三角形的同类型的题目,

如果反着来用补集求解,则:
假设一个班级有n个小朋友,第i个小朋友,其朋友的数目为f[i],算上i,再从i的朋友中现出一个,另外一个从非i的朋友之中选出一个,即有:f[i]*(n-f[i]-1)种情况,即那么这样就是不满足情况的!那么找出所有的这种情况即可。
注意:每次选出的三个点都会重复一次,因此找出所有的不满足的情况,然后再除以2。

#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){    int T, n, tmp, i;    double sum, ans, t;    scanf("%d", &T);    while(T--)    {        sum = 0.0;        scanf("%d", &n);        t = n * (n-1) * (n-2);        for(i = 0; i < n; ++i)        {            scanf("%d", &tmp);            sum += tmp * (n - tmp - 1);        }        ans = 1 - 3*sum/t;        printf("%.3lf\n", ans);    }    return 0;}


0 0