51nod算法马拉松20 C、战忽局的手段
第一行一个整数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、战忽局的手段相关推荐
- 51nod 1836:战忽局的手段
51nod 1836:战忽局的手段 题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1836 矩阵快速幂 从题目 ...
- 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 ...
- 51nod 1836 战忽局的手段 矩阵乘法
题意 众所周知,有一个神秘的组织--战忽局,在暗中保护着我们.在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人.如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这 ...
- 51nod 1836 战忽局的手段 (期望)
Description 众所周知,有一个神秘的组织--战忽局,在暗中保护着我们.在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人.如今某外星间谍已经获得了战忽局曾经参与的n次事件的 ...
- 51nod 1836 战忽局的手段(期望+矩阵快速幂)
众所周知,有一个神秘的组织--战忽局,在暗中保护着我们.在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人.如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这件事, ...
- 【51Nod1836】战忽局的手段
众所周知,有一个神秘的组织--战忽局,在暗中保护着我们.在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人.如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这件事, ...
- 51nod 1836:战忽局的手段(期望)
题目链接 公式比较好推 精度好难搞啊@_@ 下面记笔记@_@ ****在CodeBlocks中,输出double型变量要使用%f (参见http://bbs.csdn.net/topics/39193 ...
- 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) 公式有了,然后就是卡精度问 ...
- 51nod 算法马拉松18 B 非010串 矩阵快速幂
51nod 算法马拉松18 B 非010串 矩阵快速幂 非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串 ...
最新文章
- 微软开源NAS算法Petridish,提高神经网络迁移能力
- jquery ajaxSubmit
- Web前端开发怎样学?你需了解这些问题
- 给基于SAP Spartacus 3.4.1 版本的 Storefront 添加对服务器端渲染的支持
- python水印_Python如何为图片添加水印
- PrintService类打印
- 物流配送信息管理系统java_基于jsp的物流配送管理系统-JavaEE实现物流配送管理系统 - java项目源码...
- Java反编译工具XJad使用注意事项
- 如何打印计算机文档目录,word怎么把目录显示出来
- 互联网”还是“技术”?派系分明的电子烟市场
- JDBC报错:The server time zone value is unrecognized or represents more than one time zone 已解决
- php搞笑证件,什么软件可以制作搞笑证件,多种搞笑证件制作
- python后端学习(五)迭代器、生成器、协程
- 计算机奇数页打印怎么设置,EXCEL怎么设置奇数页打印和偶数页打印
- NanoPi NEO小试牛刀(二)
- Acwing 823.排列
- 维基解密泄密狂 科技公司补漏忙
- 数字图像处理学习笔记之一 DIP绪论与MATLAB基础
- SymbianOS精要
- 在windows下批量修改文件名