http://acm.zznu.edu.cn/problem.php?id=1964

题目描述

输入

输出

样例输入

  1. 2
  2. 2 1
  3. 0 1
  4. 1 0
  5. 3 1
  6. 0 1 1
  7. 1 0 1
  8. 1 1 0

样例输出

  1. 0.500
  2. 1.125

提示

之前想了一个公式  就是0.5*pow(0.5,k)*C(k,n);

k是至少认识k个人   n是认识n个人

后来队友都把所有的东西都写出来了我才去验证第二个测试数据  发现是错的  当时真的想自己从五楼上跳下来

正确的公式应该是

for(i=k;i<=n;i++)

{

  ans+=0.5*pow(0.5,n)*C(i,n);

}

现在想想真是很有道理啊

当时为啥就是蒙蔽呢

  1. #include <iostream>
  2. #include <cstring>
  3. #include <algorithm>
  4. #include <queue>
  5. #include <cstdio>
  6. #include <cstdlib>
  7. #include <cctype>
  8. #include <cmath>
  9.  
  10. using namespace std;
  11.  
  12. int num[];
  13. int x1[];
  14. int x2[];
  15. int s[][];
  16.  
  17. void Init(int n)
  18. {
  19. memset(s, , sizeof(s));
  20. for(int i=; i<=n; i++)
  21. {
  22. int x=i;
  23. for(int j=; j<=i; j++)
  24. {
  25. if(x%j==)
  26. {
  27. s[i][j]++;
  28. x/=j;
  29. j--;
  30. }
  31. }
  32. }
  33. }
  34.  
  35. long long c(int n, int k)
  36. {
  37. memset(x1, , sizeof(x1));
  38. memset(x2, , sizeof(x2));
  39. for(int i=; i<=k; i++)
  40. {
  41. for(int j=; j<=i; j++)
  42. {
  43. x1[j] += s[i][j];
  44. }
  45. }
  46. for(int i=n-k+; i<=n; i++)
  47. {
  48. for(int j=; j<=i; j++)
  49. {
  50. x2[j] += s[i][j];
  51. }
  52. }
  53. for(int i=; i<=; i++)
  54. {
  55. x2[i]-=x1[i];
  56. }
  57. long long ans=;
  58. for(int i=; i<=; i++)
  59. {
  60. for(int j=; j<=x2[i];j++)
  61. {
  62. ans*=i;
  63. }
  64. }
  65. return ans;
  66. }
  67.  
  68. double solve(int n, int k)
  69. {
  70. double ans=;
  71. for(int i=k;i<=n;i++)
  72. {
  73. ans += 0.5*c(n, i)*pow(0.5, n);
  74. }
  75.  
  76. return ans;
  77. }
  78.  
  79. int main()
  80. {
  81. int t;
  82. int n, k;
  83. int x;
  84. scanf("%d", &t);
  85. Init();
  86. while(t--)
  87. {
  88. scanf("%d%d", &n, &k);
  89. for(int i=; i<=n; i++)
  90. {
  91. int sum1=;
  92. for(int j=; j<=n; j++)
  93. {
  94. scanf("%d", &x);
  95. if(x==)
  96. sum1++;
  97. }
  98. num[i]=sum1;
  99. }
  100. double ans=;
  101. for(int i=; i<=n; i++)
  102. {
  103. if(num[i]>=k)
  104. {
  105. ans+=solve(num[i],k);
  106. }
  107. }
  108. printf("%.3lf\n", ans);
  109. }
  110.  
  111. return ;
  112. }

2015轻院校赛 D 社交网络(排列组合)的更多相关文章

  1. 2015轻院校赛 B 迷宫 (bfs)

    http://acm.zznu.edu.cn/problem.php?id=1967 这套题的有毒   我交了好多遍才对 坑:机关要按照顺序走 并且在走这个机关之前不能走这个机关  但是能穿过这个机关 ...

  2. 【DFS+堆的二叉树结构】15轻院校赛-J-堆

    [题目链接:J-堆] 1734: 堆 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 239  Solved: 113 SubmitStatusWeb B ...

  3. 轻院校赛-zzuli 2266: number【用每位的二进制的幂的和来进行hash(映射)处理】

    zzuli 2266: number 大致题意:   给定n,问有多少数对<x, y>满足: x, y∈[1, n], x < y            x, y中出现的[0, 9] ...

  4. 【二叉树、堆】15轻院校赛-J-堆

    原题:http://acm.zzuli.edu.cn/problem.php?cid=1099&pid=9 [描述] [输入] [输出] Sample Input 3 1 10 3 10 5 ...

  5. Digit Division(排列组合+思维)(Gym 101480D )

    题目链接:Central Europe Regional Contest 2015 Zagreb, November 13-15, 2015 D.Digit Division(排列组合+思维) 题解: ...

  6. 【COGS】2287:[HZOI 2015]疯狂的机器人 FFT+卡特兰数+排列组合

    [题意][COGS 2287][HZOI 2015]疯狂的机器人 [算法]FFT+卡特兰数+排列组合 [题解]先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式. 设C(n)表示第 ...

  7. 学习sql中的排列组合,在园子里搜着看于是。。。

    学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...

  8. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...

  9. 【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合

           本博客所有文章分类的总目录:本博客博文总目录-实时更新 本博客其他.NET开源项目文章目录:[目录]本博客其他.NET开源项目文章目录 KwCombinatorics组件文章目录: 1. ...

随机推荐

  1. 禁用DRM

    10G: alter system set "_gc_policy_time"=0 scope=spfile sid='*'; alter system set "_gc ...

  2. 如何在一次请求中通过JS中获取Url中的参数

    从A跳转到B,携带参数 例如: /pc/B.jsp?item=123456 B页面在js可以直接用 var item='${param.item}'; 这样就拿到啦 还有一种方法 定义一个函数   f ...

  3. Open Cascade:使用鼠标画线

    Open Cascade:使用鼠标画线 在View类文件中创建以下代码: 1.创建鼠标消息: afx_msg void OnLButtonDown(UINT nFlags, CPoint point) ...

  4. The MySQL server is running with the –secure-file-priv

    show variables like '%secure%'; 将文件导出路径更改为查询到的secure-file-priv路径下 select * from table where column = ...

  5. 解决普遍pc端公共底部永远在下面框架

    <div style="width: 90%;height: 3000px;margin: 0 auto; background: red;"></div> ...

  6. jQuery闪烁提示,让新消息在网页标题显示

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head& ...

  7. Shell读取一个表达式并计算其结果

    #!/bin/bash # 读取一个算数表达式并计算出结果 # 如果输入 # 5+50*3/20 + (19*2)/7 # 则结果为 # 17.929 read x printf "%.3f ...

  8. Gym-101615C-Fear Factoring(数论)

    分析 题意是求 L - R之间的数的因数和 我们知道如果对于一个数 i ( i < k = sqrt(R)),那么一定有一个数 R/i 也是R的因数 遍历 i = 2 - k,然后对于每一个 i ...

  9. vs编译应用程序不依赖运行vs环境

    控制台应用程序不依赖VS运行环境就可以运行的设置: 1,使用release模式编译 2,项目属性中,“C/C++”,“代码生成”中的运行库改为“多线程(/MT)” 3,项目属性中,“链接器”,“系统” ...

  10. tornado框架基础08-sqlalchemy表关系和简单登录注册

    01 一对一表关系 Module 需要先创建对应的 Module ,这里采用之前建立好的 User 和 UserDetails relationship from sqlalchemy.orm imp ...