递推。设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 ;
}

最新文章

  1. Fiddler--一、HTTP协议简介
  2. Windows Server配置Jenkins,实现监测SVN提交自动构建.net4.5的项目
  3. svn+ssh方式svn服务器和客户端的配置[转载]
  4. 哈希 poj 1480
  5. 第二个冲刺 Sprint
  6. QcheckBox
  7. JavaScript 事件委托的技术原理
  8. Android基础_1 四大基本组件介绍与生命周期
  9. UOJ #142. 【UER #5】万圣节的南瓜灯 并查集
  10. Redis+Spring缓存实例(windows环境,附实例源码及详解)
  11. 【.NET跨平台】mac上安装VS for mac步骤详解
  12. php定时运行任务(windows7)
  13. MVC TO LINQ
  14. CheckStyle
  15. GOF 23种设计模式
  16. JS string 常用方法总结
  17. [原创] f2fs文件系统源代码分析 —— 基于3.8内核 (一)
  18. equals方法相关总结
  19. appium学习记录1
  20. android 知识点汇总

热门文章

  1. Android 高仿微信实时聊天 基于百度云推送
  2. git 取消/添加 某文件的跟踪
  3. ASP.NET-FineUI开发实践-13(一)
  4. sql server 各种函数
  5. Mysql 中和同to_char 一样用法的函数
  6. java邮件客户端
  7. utils object doesn,t exists中毒后,就删除了.JS文件后台就出现了前面的英文。请问怎么解决
  8. Android 的 Relative Layout 常量
  9. IOS中截屏的实现,很简易的方法
  10. this、new、apply和call详解