【HDOJ】4986 Little Pony and Alohomora Part I
2024-08-30 17:12:06
递推。设n个盒子的Spell次数为S(n),期望为E(n)。
当有n个盒子时,可能第n把钥匙在第n个盒子中,此时的Spell次数应该为(n-1)!+S(n-1);
当第n把钥匙不在第n个盒子中,混合排列,此时的Spell次数为(n-1)*S(n-1),
因此,期望E(n) = S(n)/n!,S(n) = (n-1)!+S(n-1) + (n-1)*S(n-1) = (n-1)!+n*S(n-1),
则E(n) = S(n-1)/(n-1)! + 1/n = E(n-1) + 1/n。
因此,得到递推公式E(n) = 1+1/2+1/3...1/n。
调和计数,第一次交TLE,显然没用欧拉级数化简,化简后就过了。
#include <cstdio>
#include <cmath> #define MAXN 100000 double a[MAXN]; int main() {
int n;
int i;
double ans; a[] = ;
for (i=; i<MAXN; ++i)
a[i] = a[i-]+1.0/i; while (scanf("%d", &n) != EOF) {
if (n < MAXN) {
ans = a[n];
} else {
ans = log(n*1.0)+0.57721566490153286060651209;
}
printf("%.4lf\n", ans);
} return ;
}
最新文章
- Fiddler--一、HTTP协议简介
- Windows Server配置Jenkins,实现监测SVN提交自动构建.net4.5的项目
- svn+ssh方式svn服务器和客户端的配置[转载]
- 哈希 poj 1480
- 第二个冲刺 Sprint
- QcheckBox
- JavaScript 事件委托的技术原理
- Android基础_1 四大基本组件介绍与生命周期
- UOJ #142. 【UER #5】万圣节的南瓜灯 并查集
- Redis+Spring缓存实例(windows环境,附实例源码及详解)
- 【.NET跨平台】mac上安装VS for mac步骤详解
- php定时运行任务(windows7)
- MVC TO LINQ
- CheckStyle
- GOF 23种设计模式
- JS string 常用方法总结
- [原创] f2fs文件系统源代码分析 —— 基于3.8内核 (一)
- equals方法相关总结
- appium学习记录1
- android 知识点汇总