HDU - 1099 - Lottery - 概率dp
http://acm.hdu.edu.cn/showproblem.php?pid=1099
最最简单的概率dp,完全是等概率转移。
设dp[i]为已有i张票,还需要抽几次才能集齐的期望。
那么dp[n]=0,因为我们已经集齐了。
\]
移项得答案。
然后写个分数类,注意约分。
#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();
}
}
HDU - 1099 - Lottery - 概率dp的更多相关文章
- hdu 1099 Lottery
这是我第一次写博客,作为一个ACMer,经常进别人的博客,所以自己也想写写博客. HDU 1099 Lottery Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1099 Lottery (求数学期望)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1099 Lottery Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 3853LOOPS(简单概率DP)
HDU 3853 LOOPS 题目大意是说人现在在1,1,需要走到N,N,每次有p1的可能在元位置不变,p2的可能走到右边一格,有p3的可能走到下面一格,问从起点走到终点的期望值 这是弱菜做的第 ...
- HDU 4405 【概率dp】
题意: 飞行棋,从0出发要求到n或者大于n的步数的期望.每一步可以投一下筛子,前进相应的步数,筛子是常见的6面筛子. 但是有些地方可以从a飞到大于a的b,并且保证每个a只能对应一个b,而且可以连续飞, ...
- HDU 4576 Robot(概率dp)
题目 /*********************复制来的大致题意********************** 有N个数字,M个操作, 区间L, R. 然后问经过M个操作后落在[L, R]的概率. * ...
- HDU 4599 Dice (概率DP+数学+快速幂)
题意:给定三个表达式,问你求出最小的m1,m2,满足G(m1) >= F(n), G(m2) >= G(n). 析:这个题是一个概率DP,但是并没有那么简单,运算过程很麻烦. 先分析F(n ...
- [HDU 4089]Activation[概率DP]
题意: 有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有以下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排在队列的最后( ...
- hdu 3853 LOOPS 概率DP
简单的概率DP入门题 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #include ...
- HDU 3853 期望概率DP
期望概率DP简单题 从[1,1]点走到[r,c]点,每走一步的代价为2 给出每一个点走相邻位置的概率,共3中方向,不动: [x,y]->[x][y]=p[x][y][0] , 右移:[x][y ...
随机推荐
- java 对账关键点
原理:双方交易信息对比是否平账 注意:对账bean必须重写 equals 方法 如图: //对账方法
- asp识别手机端
<script type="text/javascript"> var mobileAgent = new Array("iphone", &quo ...
- vmware安装操作系统
安装的时候,直接选择“从光盘或者映像安装”就可以了,很方便的.不需要再去从u盘什么的安装了.
- Delphi类的默认区域
//类中数据成员的排列顺序一般是: 字段.方法.属性 //访问权限区域的顺序一般是: 无限制区(默认 published) private protected public pub ...
- HTTP Status 405
分析原因: 1.doPost()和getPost()两个方法继承了父类,造成出错.
- mongodb学习之:GridFS
GridFS是一种在Mongodb中存储大二进制文件的机制.GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片.音频.视频等). 使用GridFS有如下几个原因: 1 利用 ...
- python网络爬虫之使用scrapy爬取图片
在前面的章节中都介绍了scrapy如何爬取网页数据,今天介绍下如何爬取图片. 下载图片需要用到ImagesPipeline这个类,首先介绍下工作流程: 1 首先需要在一个爬虫中,获取到图片的url并存 ...
- STM32 ~ JTAG、SWD和串口下载的问题
最近有一个项目用到STM32,为了使PCB布线方便一些所以改了一些引脚,占用了JTAG接口的PA15和PB3,所以要禁用一下JTAG,下载采用SWD模式.这样在实际操作中做出一些总结(方法网上都有.这 ...
- Struts多个文件上传
Struts2多个文件上传 10级学员 韩晓爽课堂笔记 多个文件上传分为List集合和数组,下面我们着重介绍一下list集合的上传.都大同小异. 一 介绍 1. 在struts2文件上传的时候要先导入 ...
- Vue.js的动态组件模板
组件并不总是具有相同的结构.有时需要管理许多不同的状态.异步执行此操作会很有帮助. 实例: 组件模板某些网页中用于多个位置,例如通知,注释和附件.让我们来一起看一下评论,看一下我表达的意思是什么.评论 ...