hust 1626 Cutting rope 概率论
2016-02-08 15:36
417 查看
题目
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105318#problem/B题目来源:2016寒假第二次高年级训练
简要题意:求长为nn的绳子,切成m−1m-1段后最短的一段的期望长度。
题解
开始看的时候无从下手,看了其他人的代码也无法理解,知道后来看了某题解。令AiA_i为最短的一段为ii的概率,BiB_i为最短一段长度至少为ii的概率。则有:
1⩽i⩽n/m1\leqslant i \leqslant n/m
Ai=Bi−Bi+1A_i=B_i-B_{i+1}
An/m+1=Bn/m+1=0A_{n/m+1}=B_{n/m+1}=0
E=∑i=1n/mAi⋅i=∑i=1n/mBiE=\sum\limits_{i=1}^{n/m}{A_i\cdot i}=\sum\limits_{i=1}^{n/m}{B_i}
于是只要求出BiB_i累加就行了。
使用隔板法可知,Bi=Cm−1n−(i−1)m−1/Cm−1n−1=∏j=1m−1n−j−(i−1)mn−jB_i=C_{n-(i-1)m-1}^{m-1}/C_{n-1}^{m-1}=\prod\limits_{j=1}^{m-1}{\frac{n-j-(i-1)m}{n-j}}
于是两层循环求出结果即可。
代码
#include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <cstring> #include <stack> #include <queue> #include <string> #include <vector> #include <set> #include <map> #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define sz(x) ((int)(x).size()) #define fi first #define se second using namespace std; typedef long long LL; typedef vector<int> VI; typedef pair<int,int> PII; LL powmod(LL a,LL b, LL MOD) {LL res=1;a%=MOD;for(;b;b>>=1){if(b&1)res=res*a%MOD;a=a*a%MOD;}return res;} // head int main() { int t, n, m; scanf("%d", &t); while (t--) { scanf("%d%d", &n, &m); double ans = 0.0; for (int i = 1; i <= n/m; i++) { double p = 1.0; for (int j = 1; j < m; j++) { p *= double(n-j - m*(i-1)) / (n-j); } ans += p; } printf("%.5f\n", ans); } return 0; }
相关文章推荐
- 借助shared_ptr实现copy-on-write以提高多线程并发性能
- 第八章 JVM性能监控与故障处理工具(2)
- -boundingRectWithSize:options:attributes:context:用法
- shell
- Linux入门回顾
- Linux中使用Boxes安装windows7
- Linux下的Nginx安装
- 1.以普通表格型单表为模板定制模块:短信分类维护
- 嵌入式Linux系统的电子书阅读器项目2——Display System
- 关于主线程中自动建立的Looper的思考:主线程中Looper中的轮询死循环为何没有阻塞主线程
- 进入tomcat的app manager界面需要配置的tomcat-users.xml
- tomcat 服务开机自启动
- linux内核的idr学习(二)
- 造轮子:论Top与ROW_NUMBER读取第一页的效率问题
- 使用Linux操作系统命令检查服务器主板上每个内存插槽的内存大小
- 【翻译自mos文章】在使用Linux大页内存的配置中,使用drop_cache时导致的ORA-600 [KGHLKREM1]问题
- 文本绘制附加选项NSStringDrawingOptions的解释
- Linux关机/重启命令
- linux例行性命令
- JAVA企业级应用TOMCAT实战 【转】