传送门:https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=475129


1639 绑鞋带

基准时间限制:1 秒

空间限制:131072 KB

分值: 20 难度:3级算法题

Problem Description

有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环?

Input

仅一行,包含一个整数n (2<=n<=1000)。

Output

输出一行,为刚好成环的概率。

Example

Input示例

2

Output示例

0.666667


解题心得:

  1. 其实就是一个很简单的递归问题,n个鞋带要形成环先要变成n-1根鞋带,一直递归到1根鞋带形成环,先预处理,每减少一根鞋带不形成环的概率,然后乘起来就行了。

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e3+10;
double p[maxn];
int n; void pre_deal(){
for(int i=2;i<maxn;i++)
p[i] = (double)((i*2-2)*i*2)/(double)(i*2*(i*2-1));
p[1] = 1.0;
} int main(){
pre_deal();
scanf("%d",&n);
double ans = 1.0;
for(int i=1;i<=n;i++)
ans *= p[i];
printf("%lf",ans);
return 0;
}

最新文章

  1. Ubuntu 14.04 下安装wiznote客户端
  2. 【转】js 关键字 in 的使用方法
  3. 打造自己的视频会议系统 GGMeeting(附送源码)
  4. 6. Configure Compute services
  5. [HTML]JS添加表格
  6. HashMap原理详解
  7. 工作一直没有进步怎么办?试试PDCA法则吧!
  8. 【转】android 电容屏(三):驱动调试之驱动程序分析篇
  9. c语言,string库函数itoa实现:将int转换为char*
  10. python 学习 [day8]class成员
  11. Lumen框架-错误&amp;日志
  12. Django 2.0.4 微博第三方登录
  13. date(&#39;Y-m-d H:i:s&#39;,time()) 与 date(&#39;Y-m-d h:i:s&#39;,time())区别是什么
  14. bzoj1026: [SCOI2009]windy数(数位dp)
  15. openstack时间不同步问题
  16. 如何在安装node\npm\cnpm
  17. VS Code编辑器对git项目的支持
  18. NLayerAppV3-Distributed Service Layer(分布式服务层)
  19. AES 加密填充 PKCS #7
  20. P4027 [NOI2007]货币兑换

热门文章

  1. arcgis js 几种拓扑关系详解
  2. javascript实现多线程提升项目加载速度
  3. 【干货】JavaScript DOM编程艺术学习笔记1-3
  4. 第1章 .Net应用程序体系结构
  5. python 学习实例(cmdMD链接)
  6. UOJ#122【NOI2013】树的计数
  7. java核心技术 要点笔记2
  8. 关于Mongodb RC的思考
  9. POJ 3126 Prime Path(筛法,双向搜索)
  10. Dynamic typing 动态类型