题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6558
题意很好理解,造着他意思记忆化dp下就好。 s o l v e ( p , q ) = p ∗ q + p ∗ ( 1 − q ) ∗ ( s o l v e ( p , q + 2 solve(p,q)=p*q+p*(1-q)*(solve(p,q+2%)+1)+(1-p)*solve(p,q+1.5%) solve(p,q)=p∗q+p∗(1−q)∗(solve(p,q+2 一开始忘了初始条件,当q==100%时,期望等于1/p。
#include
using namespace std;
#define ll long long
const int maxn=110;
double dp[maxn][2];//dp[x][y] q=x+y/2
double p;
double solve(int x,int y){
if(dp[x][y]>=0.0) return dp[x][y];
if(x*2+y==200) return 1.0/p;//递归结束条件
double &res=dp[x][y];
double q=(1.0*x+1.0*y/2)/100;
res=p*q;
if(2*x+y=100)
res+=p*(1-q)*(solve(100,0)+1.0);
else
res+=p*(1-q)*(solve(x+2,y)+1.0);
}
x+=1;y+=1;
if(y>=2){
x+=1;y-=2;
}
if(2*x+y>=200){//
x=100;y=0;
}
res+=(1-p)*(solve(x,y)+1.0);
return res;
}
void test(){
for(int a=1;a
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?