http://acm.hdu.edu.cn/showproblem.php?pid=1099

最最简单的概率dp,完全是等概率转移。

设dp[i]为已有i张票,还需要抽几次才能集齐的期望。

那么dp[n]=0,因为我们已经集齐了。

\[dp[i]=(\frac{i}{n}*dp[i]+\frac{n-i}{n}*dp[i+1])+1
\]

移项得答案。

然后写个分数类,注意约分。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; struct Fraction{
ll fz;
ll fm; Fraction(){} Fraction(ll z,ll m):fz(z),fm(m){} Fraction operator+(Fraction f){
ll m=fm/__gcd(fm,f.fm)*f.fm;
Fraction res;
res.fz=fz*(m/fm)+f.fz*(m/f.fm);
res.fm=m;
res.tf();
return res;
} Fraction operator-(Fraction f){
ll m=fm/__gcd(fm,f.fm)*f.fm;
Fraction res;
res.fz=fz*(m/fm)-f.fz*(m/f.fm);
res.fm=m;
res.tf();
return res;
} Fraction operator*(Fraction f){
Fraction res;
res.fz=fz*f.fz;
res.fm=fm*f.fm;
res.tf();
return res;
} void tf(){
ll g=__gcd(fz,fm);
fz/=g;
fm/=g;
} void show(){
ll zs=fz/fm;
ll ys=fz%fm; if(ys==0){
cout<<zs<<endl;
}
else{
string l1,l2,l3;
l1=" ";
l2=" ";
l3=" ";
while(zs){
l2=char(zs%10+'0')+l2;
zs/=10;
l1+=" ";
l3+=" ";
} ll cfm=fm; string n3="";
string n2="";
while(cfm){
n3=char(cfm%10+'0')+n3;
cfm/=10;
n2+="-";
} l3+=n3;
l2+=n2; string n1=""; ll cfz=ys; while(cfz){
n1=char(cfz%10+'0')+n1;
cfz/=10;
} l1+=n1; cout<<l1<<endl<<l2<<endl<<l3<<endl;
}
}
}; Fraction dp[23]; int main(){
int n;
while(cin>>n){
dp[n]=Fraction(0,1);
for(int i=n-1;i>=0;i--){
dp[i]=dp[i+1]+Fraction(n,n-i);
}
dp[0].show();
}
}

最新文章

  1. 45分钟带你入门Linux(附:笔者在工作室开讨论班录制的视频讲解)
  2. hdu 5894 hannnnah_j’s Biological Test 组合数学
  3. 如果我用C#来输出99表
  4. P2P小贷网站业务数据流程分享
  5. JS 跨域问题浅析及解决方法优缺点对比(转)
  6. 微软职位内部推荐-Software Engineer II-Data Mini
  7. NBearV3中文教程总目录
  8. http://codeforces.com/problemset/problem/594/A
  9. python sklearn PCA源码阅读:参数n_components的设置(设为‘mle’出错的原因)
  10. Django ORM多表操作
  11. TDD in .NET Core - 简介
  12. DEV SIT UAT PET SIM PRD PROD常见环境英文缩写含义
  13. Linux 设置系统时间和时区1.Centos
  14. ThinkingInJava 学习 之 0000006 复用类
  15. Python 内置函数2
  16. java几个easy出错的小程序
  17. J - FatMouse's Speed dp
  18. 大数据小视角4:小议Lambda 与 Kappa 架构,不可变数据的计算探索
  19. 在Linux下如何限制命令执行的时间?
  20. 1032 Sharing (25)(25 point(s))

热门文章

  1. bjfu1332 简单动规
  2. Quick UDP Internet Connections
  3. docker: Dockerfile命令介绍
  4. view定位
  5. 2018年东北农业大学春季校赛 B wyh的矩阵【规律】
  6. 牛客练习赛14 D 比较月亮大小 【水】
  7. IDEA eclipse 控制台日志输出到文件
  8. hihocoder #1094 : Lost in the City微软苏州校招笔试 12月27日 (建图不大【暴力枚举】 子图的4种形态 1Y )
  9. SSL peer shut down incorrectly
  10. 提高scroll性能