战忽局的手段
基准时间限制:2 秒 空间限制:262144 KB 分值: 80
众所周知,有一个神秘的组织——战忽局,在暗中保护着我们。在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人。如今某外星间谍已经获得了战忽局曾经参与的n次 事件的资料,局座发现了这件事,于是决定再次用忽悠来保证战忽局的安全。局座将发表m次 演讲,每一天他都会从n 事件中等概率地挑选一件混淆众人,由于局座每天很忙,不能把之前将的事件都记录下来,因此他可能会重复选择某一件事。现在局座想知道,m次 演讲过后,期望能使多少事件混淆众人。
Input
第一行一个整数T(1<=T<=1000),表示数据组数。接下来T行每行两个正整数n,m(1<=n,m<=1e18)分别表示事件数和局座演讲的次数。

Output
对于每组数据输出一行一个实数ans,表示局座在m次演讲之后期望混淆众人的事件数,你输入的数和标准答案的相对误差不超过1e-6视为正确。

Input示例
3
2 2
10 100000
3 2

Output示例

1.5000000
10.0000000
1.6666667

题意:
         略
思路:
         设f(i)为第i次演讲时能忽悠的事件的期望
         则f(i+1)=f(i)*(f(i)/n) +(f(i)+1)*(n-f(i))/n
         可得 f(m)=(1-1/n) ^(m-1) +(1-1/n) ^(m-2)+......(1-1/n)^0
         可知 f(m)为等比数列,由求和公式得:
         f(m)=n*(1-(1-1/n)^m)

因为(1-1/n)^m需要极高的精度,long double 也不行,
看到讨论区提到一种骚技巧 叫__float128,
查阅后才发现有这么多的大数库,之前都是手写的啊...

__float128 的资料可参考http://stackoverflow.com/questions/29404555/compiling-c-code-using-float128

尝试之后发现__float128应该需要GCC编译器支持,最后还是乖乖用回了Decimal....

代码:

from decimal import Decimal
import mathif __name__ =='__main__':T= input()while( T>0):T=T-1a = raw_input()b = a.split(" ")n = Decimal(b[0])m = Decimal(b[1])fpow=pow(1-1/n,m)ans= n*(1-fpow)print ans

51nod算法马拉松20 C、战忽局的手段相关推荐

  1. 51nod 1836:战忽局的手段

    51nod 1836:战忽局的手段 题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1836 矩阵快速幂 从题目 ...

  2. 51nod 1836战忽局的手段(期望+矩阵快速幂)

    战忽局的手段 n n n个事件, m m m次演讲 定义 d p [ i ] dp[i] dp[i]为 i i i次演讲的期望次数 d p [ 1 ] = 1 dp[1]=1 dp[1]=1 d p ...

  3. 51nod 1836 战忽局的手段 矩阵乘法

    题意 众所周知,有一个神秘的组织--战忽局,在暗中保护着我们.在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人.如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这 ...

  4. 51nod 1836 战忽局的手段 (期望)

    Description 众所周知,有一个神秘的组织--战忽局,在暗中保护着我们.在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人.如今某外星间谍已经获得了战忽局曾经参与的n次事件的 ...

  5. 51nod 1836 战忽局的手段(期望+矩阵快速幂)

    众所周知,有一个神秘的组织--战忽局,在暗中保护着我们.在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人.如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这件事, ...

  6. 【51Nod1836】战忽局的手段

    众所周知,有一个神秘的组织--战忽局,在暗中保护着我们.在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人.如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这件事, ...

  7. 51nod 1836:战忽局的手段(期望)

    题目链接 公式比较好推 精度好难搞啊@_@ 下面记笔记@_@ ****在CodeBlocks中,输出double型变量要使用%f (参见http://bbs.csdn.net/topics/39193 ...

  8. 51nod 1836 战忽局的手段

    设 f(m) 表示m次演讲后忽悠的期望,那么很容易得出: f(m)=f(m-1)+1*(n-f(m-1))/n 整理得到 f(m)-n=(n-1)/n*(f(m-1)-n) 公式有了,然后就是卡精度问 ...

  9. 51nod 算法马拉松18 B 非010串 矩阵快速幂

    51nod 算法马拉松18 B 非010串 矩阵快速幂 非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串 ...

最新文章

  1. 微软开源NAS算法Petridish,提高神经网络迁移能力
  2. jquery ajaxSubmit
  3. Web前端开发怎样学?你需了解这些问题
  4. 给基于SAP Spartacus 3.4.1 版本的 Storefront 添加对服务器端渲染的支持
  5. python水印_Python如何为图片添加水印
  6. PrintService类打印
  7. 物流配送信息管理系统java_基于jsp的物流配送管理系统-JavaEE实现物流配送管理系统 - java项目源码...
  8. Java反编译工具XJad使用注意事项
  9. 如何打印计算机文档目录,word怎么把目录显示出来
  10. 互联网”还是“技术”?派系分明的电子烟市场
  11. JDBC报错:The server time zone value is unrecognized or represents more than one time zone 已解决
  12. php搞笑证件,什么软件可以制作搞笑证件,多种搞笑证件制作
  13. python后端学习(五)迭代器、生成器、协程
  14. 计算机奇数页打印怎么设置,EXCEL怎么设置奇数页打印和偶数页打印
  15. NanoPi NEO小试牛刀(二)
  16. Acwing 823.排列
  17. 维基解密泄密狂 科技公司补漏忙
  18. 数字图像处理学习笔记之一 DIP绪论与MATLAB基础
  19. SymbianOS精要
  20. 在windows下批量修改文件名

热门文章

  1. 银联商户号变更及证书更新
  2. mybatis传入参数为map时如何在mapper.xml中获取
  3. 读研究生与蹲监狱的联系和区别
  4. 现在应该投资买房吗?
  5. DirectX入门之绘图实例
  6. 直播网站云服务器搭建,什么是云服务器,直播平台搭建又该如何选择呢?
  7. [Cocos Creator] 获取龙骨动画dragonbones精确外边框
  8. 视觉SLAM十四讲读书笔记(3)P27-P31
  9. nuc972移植diaochan
  10. 理解Node类型——不应被忽视的 nodeType、nodeName、nodeValue