码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 4503

时间:2014-06-01 12:09:46      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:des   c   style   class   blog   code   

bubuko.com,布布扣
湫湫系列故事——植树节

Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1025    Accepted Submission(s): 604


Problem Description
  今天是一年一度的植树节,腾讯幼儿园要求每个老师在班里选出几个小朋友一起去野外种植小树苗,根据学校的整体安排,湫湫老师的班里要选出3个小朋友。  已知湫湫的班里共有n个孩子,每个孩子有Bi个朋友(i从1到n),且朋友关系是相互的,如果a小朋友和b小朋友是朋友,那么b小朋友和a小朋友也一定是好朋友。为了选择的公平性,湫湫老师会随机抽取3个小朋友出来(每个人被抽到的概率相同),但是她很希望这3个小朋友之间的关系完全相同,湫湫老师想请你帮她算算抽到的3个小朋友正好关系相同的概率是多少?
  PS. 关系相同就是指要么3个人互相是好朋友,要么3个人互相都不是好朋友。
 

Input
输入数据第一行是一个整数T(1<=T<=1000),表示输入数据的组数;每组数据的第一行是一正整数n表示孩子的总数(2<n<=1000),第二行有n个数Bi (i从1到n),分别代表每个小朋友的朋友的个数。
 

Output
对于每组数据,请输出抽到的3个小朋友关系相同的概率,结果保留3位小数。
 

Sample Input
1
5
3 3 3 3 4
 

Sample Output
0.400
bubuko.com,布布扣

分析:

求正面不容易求,那么就求反面。

由题易知,若不满足题中条件,则3个人中必有两个人是朋友,而另外一个人和其中一个或零个是朋友。就相当于3个点之间只能有两条或一条直线。

每个人都有可能抽到,那么如果抽到第i个人,另外两个人只能在自己朋友中(Bi)抽一个和不是自己朋友中(n-Bi-1)抽一个才能不满足题中条件,有朋友也许会问:"如果抽到第i个人,另外两个在第i个人的不是朋友中抽,也可能不满足题中条件,比如当另外两个人是朋友,而这两个人都不是第i个人的朋友"。确实,有这种可能,但是我所说的包含你说的这种可能了,因为假设另外两个人是j和k,那么把i换成j或k,不就把这种情况包含进去了么。 现在,又出了个新的问题:是否有重复事件?  是的,确实有重复了,如前文,若在j处选了i和k,然后在k处选了i和j。那么这就重复了,因此算出的反面事件除以2就是正确的反面事件的个数。而总事件为C(n,3), 设咱们求出反面事件的个数为sum,那么答案ans=1-sum/C(n,3);

 

代码如下:

bubuko.com,布布扣
 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <algorithm>
 4 #include <iostream>
 5 using namespace std;
 6 
 7 main()
 8 {
 9     int t, n, a[1005], i, j;
10     double ans, sum;
11     cin>>t;
12     while(t--)
13     {
14         scanf("%d",&n);
15         ans=0.0;
16         for(i=1;i<=n;i++) 
17         {scanf("%d",&a[i]);
18         ans+=a[i]*(n-1-a[i]);
19         }
20         ans/=2.0;
21         sum=(n-1)*(n-2)*n/6;
22         ans=ans/sum;
23         printf("%.3lf\n",1-ans);
24     }
25 }
bubuko.com,布布扣

 

HDU 4503,布布扣,bubuko.com

HDU 4503

标签:des   c   style   class   blog   code   

原文地址:http://www.cnblogs.com/qq1012662902/p/3762959.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!