zoj 3640 Help Me Escape(概率dp)

来源:互联网 发布:99scsc最新域名 编辑:程序博客网 时间:2024/05/21 22:42

题意:一个人在一个有N条道路的地方,每天他会被随机传送到任意一条道路,每个道路有一个危险值ci,他有个战斗力f,如果f>ci,那么在战斗ti天后会出去,否则f会增加ci,第二天继续这个过程,问他出去的天数的期望。

思路:比较简单的概率dp吧,dp[x]表示战斗力为x时出去的天数的期望。如果x>max{ci},那么天数的期望就为1/n*Σti,否则,dp[x]=1/n*Σti(x>ci)+1/n*Σ(1+dp[x+ci])。

代码:

#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<map>#include<queue>#include<stack>#include<set>#include<cmath>#include<vector>#define inf 0x3f3f3f3f#define Inf 0x3FFFFFFFFFFFFFFFLL#define eps 1e-9#define pi acos(-1.0)using namespace std;typedef long long ll;const int maxn=10000+100;double dp[maxn],p;bool flag[maxn];int c[maxn],t[maxn],maxc,n;inline int cal(int v){    return floor((1.0+sqrt(5.0))/2.0*v*v);}double f(int x){    if(x>maxc)    {        double res=0;        for(int i=1;i<=n;++i)            res+=p*t[i];        return res;    }    if(flag[x]) return dp[x];    flag[x]=true;    dp[x]=0;    for(int i=1;i<=n;++i)    {        if(x>c[i]) dp[x]+=p*t[i];        else dp[x]+=p*(1+f(x+c[i]));    }    return dp[x];}int main(){    //freopen("in.txt","r",stdin);    //freopen("out.txt","w",stdout);    int v;    while(~scanf("%d%d",&n,&v))    {        memset(flag,0,sizeof(flag));        maxc=-1;        for(int i=1;i<=n;++i)        {            scanf("%d",&c[i]);            maxc=max(maxc,c[i]);            t[i]=cal(c[i]);        }        p=1.0/n;        double ans=f(v);        printf("%.3lf\n",ans);    }    return 0;}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 增值税专票没有机器编码怎么办 发票右上角的编码打不全怎么办 税票名称开错了怎么办 开票名称开错了怎么办 退休党员不交党费怎么办 cad打不出来字怎么办 用cad打不出来字怎么办 打字总打错字母怎么办 mac做ppt卡住了怎么办 mac的ppt卡住了怎么办 淘宝店铺被屏蔽了怎么办 淘宝申请售后卖家拒绝怎么办 淘宝投诉卖家入口关闭怎么办 遇见最喜欢孩子的父母怎么办 房屋备案表丢了怎么办 淘宝发布商品没有品牌怎么办 电子发票名称写错了怎么办 合同写错了划掉怎么办 进京证日期错了怎么办 买车时谈的协议与合同不一致怎么办 新车上牌找不到流水号怎么办 开票数量比入库数量少怎么办 我贷款的app忘了怎么办 网贷名字忘了怎么办 附件太大邮件发不出去怎么办 孩子出生足印单子丢了怎么办 保险名字写错了怎么办 行驶证和身份证名字不一样怎么办 上户后发现合格证和车不一样怎么办 新车上户重量不一样怎么办 医保卡和身份证名字不一样怎么办 保险标志保险卡都没给怎么办 新买的电动自行车不符合标准怎么办 电费的户号12位怎么办? 买到过期的药品怎么办 淘宝代销宝贝信息不全怎么办 en和eng读不明显怎么办 快递收件人填错手机号没收到怎么办 快递收件人电话写错了怎么办 收件人电话写错了怎么办 大货要出货了数量错误怎么办