概率dp入门
概率DP主要用于求解期望、概率等题目。
转移方程有时候比较灵活。
一般求概率是正推,求期望是逆推。通过题目可以体会到这点。
poj2096:Collecting Bugs
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <math.h>
typedef long long ll;
using namespace std;
#define mod 1000000007
double dp[][];
int n,s;
int main()
{
while(scanf("%d%d",&n,&s)!=EOF)
{
dp[n][s]=;
for(int i=n;i>=;i--)
{
for(int j=s;j>=;j--)
{
if(i==n&&j==s) continue;
dp[i][j]=(n*s+i*(s-j)*dp[i][j+]+(n-i)*j*dp[i+][j]+(n-i)*(s-j)*dp[i+][j+])/(n*s-i*j);
}
}
printf("%.4f\n",dp[][]);
}
return ;
}
//http://www.cnblogs.com/jackge/archive/2013/05/21/3091757.html
sdut2626题目: The number of steps
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <math.h>
typedef long long ll;
using namespace std;
#define mod 1000000007
int n;
double dp[][];
double a,b,c,d,e;
int main()
{
while(scanf("%d",&n)!=EOF&&n!=)
{
scanf("%lf%lf",&a,&b);
scanf("%lf%lf%lf",&c,&d,&e);
memset(dp,,sizeof(dp));
dp[n][]=;
for(int i=;i<=n;i++)
{
dp[n][i]=dp[n][i-]+;
}
for(int i=n-;i>=;i--)
{
for(int j=;j<=i;j++)
{
if(j==)
{
if(i==n) continue;
dp[i][j]=dp[i+][j]*a+dp[i+][j+]*b+1.0;
}
else
{
dp[i][j]=dp[i][j-]*e+dp[i+][j]*c+dp[i+][j+]*d+1.0;
}
}
}
printf("%.2lf\n",dp[][]);
}
return ;
}
HDU4405:
题目大意:
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <queue>
#include <vector>
#include <algorithm>
#include <queue>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int n,m;
int path[];
double dp[];
int main()
{
int xx,yy;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==&&m==) break;
memset(path,-,sizeof(path));
for(int i=;i<=m;i++)
{
scanf("%d%d",&xx,&yy);
path[xx]=yy;
}
for(int i=n;i>=;i--)
{
if(path[i]!=-)
{
int j=path[i];
if(path[j]!=-)
path[i]=path[j];
else path[i]=j;
}
}
for(int i=;i<;i++)
dp[n+i]=;
for(int i=n-;i>=;i--)
{
if(path[i]!=-)
dp[i]=dp[path[i]];
else
{
double tt=;
for(int j=;j<=;j++)
{
tt+=dp[i+j]*(1.0/6.0);
}
dp[i]=+tt;
}
}
printf("%.4f\n",dp[]);
}
return ;
}
概率dp入门的更多相关文章
- HDU 3853 LOOPS 概率DP入门
LOOPS Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others)Total Sub ...
- HDU 4405:Aeroplane chess(概率DP入门)
http://acm.split.hdu.edu.cn/showproblem.php?pid=4405 Aeroplane chess Problem Description Hzz loves ...
- poj 2096 Collecting Bugs 概率dp 入门经典 难度:1
Collecting Bugs Time Limit: 10000MS Memory Limit: 64000K Total Submissions: 2745 Accepted: 1345 ...
- 概率DP入门学习QAQ
emmmm博客很多都烂尾了...但是没空写..先写一下正在学的东西好了 概率DP这东西每次考到都不会..听题解也是一脸懵逼..所以决定学习一下这个东东..毕竟NOIP考过...比什么平衡树实在多了QA ...
- 洛谷P2719 搞笑世界杯 题解 概率DP入门
作者:zifeiy 标签:概率DP 题目链接:https://www.luogu.org/problem/P2719 我们设 f[n][m] 用于表示还剩下n张A类票m张B类票时最后两张票相同的概率, ...
- POJ 2096-Collecting Bugs(概率dp入门)
题意: 有n种bug和s种系统bug,每天发现一种bug(可能已经发现过了)所有种bug被发现的概率相同,求所有bug被发现的期望天数. 分析: dp[i][j]发现i种bug,j种系统bug期望天数 ...
- HDU 3853-loop(概率dp入门)
题意: r*c个方格,从(1,1)开始在每个方格可释放魔法(消耗能量2)以知,释放魔法后可能在原地.可能到达相邻的下面格子或右面格子,给出三者的概率 求要到达(R,C)格子,要消耗能量的期望值. 分析 ...
- hdu4405概率dp入门
Aeroplane chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu3853之概率dp入门
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/xingyeyongheng/article/details/25205693 LOOPS Time ...
随机推荐
- js判断鼠标位置是否在某个div中
div的onmouseout事件让div消失时,会出现这样的情况,就是当鼠标移至div中的其它内容时,此时也判定为离开div,会触发 onmouseout事件,这样div中的内容就不能操作了.解决的办 ...
- ueditor1.4.3 php版本使用修改图片上传路径
实例化编辑器必须带上一下东西 header部分 <script type="text/javascript" charset="utf-8" src=&q ...
- Go学习记录
操作系统:Windows 一.下载 go官网:https://golang.org/go下载地址:https://golang.org/dl/ 二.安装 安装包有msi安装版本,以及zip压缩包版本. ...
- Windows系统中Git的安装配置
一.Git安装 1.下载 Git官网:https://git-scm.com/download/ 选择windows版本下载即可. 百度软件中心:http://rj.baidu.com/ 如官网下载不 ...
- unity3d 基于物理渲染的问题解决
最近1个月做了unity 次世代开发的一些程序方面的支持工作,当然也是基于物理渲染相关的,主要还是skyshop marmoset的使用吧,他算是unity4.x版本 PBR的优秀方案之一了但在使用以 ...
- DWZ框架一些技巧
DWZ框架from表单提交后关闭对话框 注意大小写 <input type="hidden" name="callbackType" value=&quo ...
- 让你的PHP更安全之PHP.ini
让你的PHP更安全之PHP.ini 发布时间:2013-05-02 12:43:06 来源:PHP100论坛 评论:0 点击: 次 [字号:大 中 小] QQ空间新浪微博腾讯微博人人网豆瓣网百 ...
- DirectX基础学习系列4 颜色和光照
4.1颜色表示 RGB颜色:D3DCOLOR 可以用宏D3DCOLOR_ARGB(a,r,g,b) D3DCOLOR_XRGB(255,r,g,b) 另外一种浮点表示:D3DCOLORVALUE, ...
- 性能监控工具nmon
工具集: Nmon:性能数据收集分析工具 Nmon analyser:性能数据分析工具,excel文件 nmon概述: nmon是收集AIX或Linux主机的性能数据并分析的工具,使用简单易用 ...
- 如何去掉delphi2010的欢迎界面(welcome page)
如何去掉delphi2010的欢迎界面(welcome page)方法一: 在电脑开始菜单下,找到delphi的快捷菜单,点击该菜单的属性,在“目标”的内容中,最后添加“-np”即可.如:D:\Win ...