HDU4503 湫湫系列故事——植树节

来源:互联网 发布:usb端口控制软件 编辑:程序博客网 时间:2024/04/29 02:50

中文题。姑且放在数论类里吧

有n个孩子

每个孩子有 b[i]个朋友  自然有 n-1-b[i]个非朋友             他自己,他的一个朋友,他的一个非朋友构成的组合是不满足题意的 

但是除此之外的所有组合都满足题意

故可以通过计算不满足的组合

对每个孩子有b[i]*(n-1-b[i])个组合,这个组合累加会被他的朋友再计算一次,所以结果除以2就是不满足的组合数

总的组合是C(n,3)

#include<cstdio>#include<algorithm>using namespace std;int a[1010];int main(){int total;scanf("%d",&total);while(total--){int n;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);}int ans=0;for(int i=0;i<n;i++){ans+=a[i]*(n-a[i]-1);}ans/=2;printf("%.3f\n",1-1.0*ans/(n*(n-1)*(n-2)/6));}return 0;}