题目:http://acm.hdu.edu.cn/showproblem.php?pid=1099

英文水平太差了,题目实在是不知道是什么意思,然后看了其他高手写的思路,才看明白。

题意,收集n张彩票(1~n)平均需要抽几次彩票。这相当于是概率的问题。

假设n=3;

收集1 2 3 有如下过程

第一次抽到的概率为 1     抽到平均需要1次

第二次抽到的概率为2/3   抽到平均需要2/3次

第三词抽到的概率为1/3   抽到的平均需要3/1次

so 平均需要 1+2/3+3/1=5.5次

  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <string>
  4. #include <cstring>
  5. using namespace std;
  6.  
  7. __int64 gcd(__int64 a, __int64 b)//求最小公倍数
  8. {
  9. if(b == ) return a;
  10. return gcd(b, a % b);
  11. }
  12.  
  13. __int64 getlen(__int64 x)//求位数
  14. {
  15. __int64 cnt = ;
  16. while(x)
  17. {
  18. cnt++;
  19. x /= ;
  20. }
  21. return cnt;
  22. }
  23.  
  24. int main()
  25. {
  26. __int64 n;
  27. while(scanf("%I64d", &n) != EOF)
  28. {
  29. __int64 fm = , fz = n, temp;//fz分子 fm分母;
  30. for(__int64 i = ; i <= n; i++)
  31. {
  32. fz = fz * i + fm * n;//分子 分母交叉相乘 eg:3/1+3/2=(/2*3+1*3)/1*2=9/2;
  33. fm *= i;
  34. temp = gcd(fz, fm);
  35. fz /= temp;
  36. fm /= temp;
  37. }
  38. __int64 a = fz / fm;
  39. if(fz % fm == )
  40. {
  41. printf("%I64d\n", a);
  42. continue;
  43. }
  44. fz = fz - fm * a;
  45. //计算位数
  46. __int64 len_fm = getlen(fm);//经过上面的化简必然是分子小于分母
  47. // __int64 len_fz = getlen(fz);
  48. __int64 len_a = getlen(a);
  49. // __int64 maxx = max(len_fm, len_fz);
  50. for(__int64 i = ; i < len_a + ; i++)
  51. putchar(' ');
  52. printf("%I64d\n", fz);
  53. printf("%I64d ", a);
  54. for(__int64 i = ; i < len_fm; i++)
  55. putchar('-');
  56. puts("");
  57. for(__int64 i = ; i < len_a + ; i++)
  58. putchar(' ');
  59. printf("%I64d\n", fm);
  60. }
  61. return ;
  62. }

1099 Lottery的更多相关文章

  1. hdu 1099 Lottery

    这是我第一次写博客,作为一个ACMer,经常进别人的博客,所以自己也想写写博客. HDU 1099 Lottery Time Limit: 2000/1000 MS (Java/Others)     ...

  2. HDU 1099 Lottery (求数学期望)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1099 Lottery Time Limit: 2000/1000 MS (Java/Others)   ...

  3. HDUOJ 1099——Lottery

    Lottery Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Su ...

  4. HDU - 1099 - Lottery - 概率dp

    http://acm.hdu.edu.cn/showproblem.php?pid=1099 最最简单的概率dp,完全是等概率转移. 设dp[i]为已有i张票,还需要抽几次才能集齐的期望. 那么dp[ ...

  5. 【HDOJ】1099 Lottery

    题意超难懂,实则一道概率论的题目.求P(n).P(n) = n*(1+1/2+1/3+1/4+...+1/n).结果如果可以除尽则表示为整数,否则表示为假分数. #include <cstdio ...

  6. 2018年暑假ACM个人训练题7 题解报告

    A:HDU 1060 Leftmost Digit(求N^N的第一位数字 log10的巧妙使用) B:(还需要研究一下.....) C:HDU 1071 The area(求三个点确定的抛物线的面积, ...

  7. HDU1099---数学 | 思维

    hdu 1099 Lottery题意:1~n编号的彩票,要买全,等概率条件下平均要买几张.已经买了m张时,买中剩下的概率为1-m/n,则要买的张数为1/(1-m/n)n=2,s=1+1/(1-1/2) ...

  8. UVA10325 The Lottery(容斥原理)

    题意: 给n,m,和m个数(k1~km).求1~n中有多少个数不是(k1~km)中任意一数的倍数. 题解: 容斥模板题.反面考虑,a的倍数有n/a个:既是a,也是b的倍数,即lcm(a,b)的倍数有n ...

  9. 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099;

     错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099; nested exception is:  java ...

随机推荐

  1. C++ lstrlen()

    关于lstrlen function,参考:https://msdn.microsoft.com/en-us/library/windows/desktop/ms647492(v=vs.85).asp ...

  2. C++ Primer 笔记——固有的不可移植的特性

    1.为了支持底层编程,C++定义了一些固有的不可移植的特性,所谓不可移植特性是指因机器而异的特性. 2.一个位域中含有一定数量的二进制位,位域在内存中的布局是机器相关的.位域的类型必须是整型或枚举类型 ...

  3. IDEA项目的复制操作

     另一种复制项目的方法 完成

  4. IOU和非极大值抑制

    如何判断对象检测算法运作良好呢? 一.交并比(Intersection over union,IoU) 是产生的候选框(candidate bound)与原标记框(ground truth bound ...

  5. Vim设计

    像 IDE 一样使用 vim 免费的编程中文书籍索引

  6. 【C++ Primer | 10】泛型算法

    #include<iostream> #include<algorithm> #include<vector> #include<string> #in ...

  7. 一脸懵逼学习Hive(数据仓库基础构架)

    Hive是什么?其体系结构简介*Hive的安装与管理*HiveQL数据类型,表以及表的操作*HiveQL查询数据***Hive的Java客户端** Hive的自定义函数UDF* 1:什么是Hive(一 ...

  8. [warn] 7#7: *676 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000007

    nginx 上传文件遇到的Bug. fastcgi_buffer_size 128k; fastcgi_buffers 8 128k; fastcgi_busy_buffers_size 128k; ...

  9. Multidex(二)之Dex预加载优化

    Multidex(二)之Dex预加载优化 https://www.jianshu.com/p/2891599511ff

  10. 用webstorm搭建vue项目

    本文只针对新手. 首先要明白几个名词(概念). Node.js: Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 ...