概率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 ...
随机推荐
- iOS开发项目之二 [ App appicon与启动图]
*appicon尺寸 *不是所有的appicon都是需要配置 *尽量不要透明--(透明的话,会在桌面显示成背景黑色) 1 如果没有配置5s的启动图,回去往下找,找到4s之后,会把界面以4s启动图的大小 ...
- [转] - 使用Qt作窗口截屏(含源码)
截屏(screenshot),就是将屏幕上的东西拷贝下来存成图片文件.介绍的好像有点多余:(,那我们就直接切入正题. QPixmap提供了两个函数grabWidget和grabWindow可以将屏幕上 ...
- hdu Robberies
这道题目应该在理解上会有一点问题.这道题的概率不是用来加的,而是用来乘的.这道题要的是在能逃跑的前提下,获得的最大money,而题目中给的概率是被抓的概率,所以要先有一个预处理,之后只要列出状态转移方 ...
- https的了解
经常用支付宝,看到了https就查了一下. HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议. 简单讲是HTTP的安全版.即HTTP下加入SSL层, ...
- android之Chronometer
首先定义activity_main.xml文件 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/re ...
- SqlParameter 基本用法
因为通过SQL 语句的方式,有时候存在脚本注入的危险,所以在大多数情况下不建议用拼接SQL语句字符串方式,希望通过SqlParameter实现来实现对数据的操 作,针对SqlParameter的方式我 ...
- [转]OBOUT ASP.NET HTML Editor - Insert HTML
本文转自:http://www.obout.com/editor_new/sample_InsertHTML.aspx Example demonstrates how to access HTML ...
- Setting property 'source' to 'org.eclipse.jst.jee.server
警告: [SetPropertiesRule] Setting property 'source' to 'org.eclipse.jst.jee.server:project' did not fi ...
- Apache Spark源码走读之17 -- 如何进行代码跟读
欢迎转载,转载请注明出处,徽沪一郎 概要 今天不谈Spark中什么复杂的技术实现,只稍为聊聊如何进行代码跟读.众所周知,Spark使用scala进行开发,由于scala有众多的语法糖,很多时候代码跟着 ...
- Apache Storm技术实战之1 -- WordCountTopology
欢迎转载,转载请注意出处,徽沪一郎. “源码走读系列”从代码层面分析了storm的具体实现,接下来通过具体的实例来说明storm的使用.因为目前storm已经正式迁移到Apache,文章系列也由twi ...