2013腾讯编程马拉松初赛第〇场(HDU 4503) 湫湫系列故事——植树节
2014-04-10 13:19
323 查看
http://acm.hdu.edu.cn/showproblem.php?pid=4503
题目:
已知湫湫的班里共有n个孩子,每个孩子有Bi个朋友(i从1到n),且朋友关系是相互的,如果a小朋友和b小朋友是朋友,那么b小朋友和a小朋友也一定是好朋友。为了选择的公平性,湫湫老师会随机抽取3个小朋友出来(每个人被抽到的概率相同),但是她很希望这3个小朋友之间的关系完全相同,湫湫老师想请你帮她算算抽到的3个小朋友正好关系相同的概率是多少?PS. 关系相同就是指要么3个人互相是好朋友,要么3个人互相都不是好朋友。
思路:
概率论下学期教。。
看了别人的思路的。
从N个人选3个人有C(N,3)种方法,这是总事件数,也就是n*( n-1)*(n -2)/6
接下来,因为有3个人之间要么都是好朋友,要么都不是好朋友,要么有两个是好朋友。
SO,答案是1-两个是好朋友的概率。
两个是好朋友的概率怎么求呢?
对于孩子i,他有num[i]个好友,挑出3个人一个是i,则两个是好朋友的事件个数显然是num[i]*(n-num[i]-1) (要扣除他自己,n是总数)
这样,把每个孩子的事件个数加起来除以2,就得到了两个为好友的事件数。
为什么除以2?x是y的好朋友,x算的时候y算了一次,y的时候x又算了一次,也就是说重复了~所以/2.
嗯然后除以总数就可以得到n个条选出3个人两个有关系的概率~答案就是1-这个数啦~
题目:
已知湫湫的班里共有n个孩子,每个孩子有Bi个朋友(i从1到n),且朋友关系是相互的,如果a小朋友和b小朋友是朋友,那么b小朋友和a小朋友也一定是好朋友。为了选择的公平性,湫湫老师会随机抽取3个小朋友出来(每个人被抽到的概率相同),但是她很希望这3个小朋友之间的关系完全相同,湫湫老师想请你帮她算算抽到的3个小朋友正好关系相同的概率是多少?PS. 关系相同就是指要么3个人互相是好朋友,要么3个人互相都不是好朋友。
思路:
概率论下学期教。。
看了别人的思路的。
从N个人选3个人有C(N,3)种方法,这是总事件数,也就是n*( n-1)*(n -2)/6
接下来,因为有3个人之间要么都是好朋友,要么都不是好朋友,要么有两个是好朋友。
SO,答案是1-两个是好朋友的概率。
两个是好朋友的概率怎么求呢?
对于孩子i,他有num[i]个好友,挑出3个人一个是i,则两个是好朋友的事件个数显然是num[i]*(n-num[i]-1) (要扣除他自己,n是总数)
这样,把每个孩子的事件个数加起来除以2,就得到了两个为好友的事件数。
为什么除以2?x是y的好朋友,x算的时候y算了一次,y的时候x又算了一次,也就是说重复了~所以/2.
嗯然后除以总数就可以得到n个条选出3个人两个有关系的概率~答案就是1-这个数啦~
#include <cstdio> const int MAXN=1024; int num [MAXN]; int main () { int T ; scanf("%d" ,&T); while(T --) { int n ; scanf("%d" ,&n); for(int i=0; i<n ;i++) scanf("%d" ,&num[ i]); int tot =n*( n-1)*(n -2)/6;//组合数 C(N,3) int k =0; for(int i=0; i<n ;i++) { k+=num [i]*( n-1-num [i]); } k>>=1; printf("%.3lf\n" ,1.0-(1.0*k)/ tot); } return 0; }
相关文章推荐
- 2013腾讯编程马拉松初赛第〇场(HDU 4503) 湫湫系列故事——植树节
- 访问者模式讨论篇:java的动态绑定与双分派
- PHP的CI框架集成Smarty的最佳方式
- Visual Assist下载并安装,在vs中自动代码提示
- C#软件开发实例.私人订制自己的屏幕截图工具(四)基本截图功能实现
- Java中NaN和-0.0f的比较问题
- 14 javaBean 组件
- 搭建PHP环境并安装Piwik程序、介绍扩展热安装的方法
- java 设置环境变量
- Python Twisted介绍
- myeclipse安装插件spket-1.6.18.jar
- 解决php json_encode 出现的中文转码、乱码问题
- Eclipse 中web项目看不到Deployment Assembly属性
- ubuntu jdk 配置
- 超越luabind的luaBridge
- eclipse内存溢出报错:java.lang.OutOfMemoryError:Java heap space.
- C++变量命名规则
- ASP.NET中参数化查询
- Golang快速排序算法
- 35 个快速学习编程的好去处