标签:font 体验 solution 结束 期望值 16px 模型 script i++
Description
小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑。
Solution
感觉是个非常厉害的期望dp…完全没想到…
卡牌在哪一轮使用其实不重要,用f[i][j]来表示卡牌i到n还有j个发动机会的概率:
f[i][j]=f[i-1][j]*(1-p[i-1])j+f[i-1][j+1]*[1-(1-p[i-1])j+1]
于是每个f[i][j]对答案产生的贡献就是f[i][j]*[1-(1-p[i])j]*d[i]
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; int t,n,r,d[250]; double p[250],f[250][150],ans; double pow(double a,int n) { double res=1; while(n) { if(n&1)res*=a; a*=a; n>>=1; } return res; } int main() { scanf("%d",&t); while(t--) { scanf("%d%d",&n,&r); for(int i=1;i<=n;i++) scanf("%lf%d",&p[i],&d[i]); memset(f,0,sizeof(f)); f[0][r]=1,ans=0; for(int i=1;i<=n;i++) { for(int j=1;j<=r;j++) { f[i][j]=f[i-1][j]*pow(1-p[i-1],j)+f[i-1][j+1]*(1-pow(1-p[i-1],j+1)); ans+=f[i][j]*(1-pow(1-p[i],j))*d[i]; } } printf("%.10lf\n",ans); } return 0; }
[BZOJ 4008][HNOI2015]亚瑟王(期望Dp)
标签:font 体验 solution 结束 期望值 16px 模型 script i++
原文地址:http://www.cnblogs.com/Zars19/p/6914446.html