首页 > 代码库 > BZOJ 4318: OSU! [DP 概率]
BZOJ 4318: OSU! [DP 概率]
传送门
题意:变成了告诉每个操作的成功概率,并且得分是三次方
一样....分别维护$x,\ x^2,\ x^3$的期望就行了
注意$x^3$是我们最终求的得分,即使失败得分也要累加上之前的
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;typedef long long ll;const int N=1e5+5;inline int read(){ char c=getchar();int x=0,f=1; while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=-1;c=getchar();} while(c>=‘0‘&&c<=‘9‘){x=x*10+c-‘0‘;c=getchar();} return x*f;}int n;double a,f[N][3];int main(){ freopen("in","r",stdin); n=read(); for(int i=1;i<=n;i++){ scanf("%lf",&a); f[i][0]=(f[i-1][0]+1)*a; f[i][1]=(f[i-1][1]+2*f[i-1][0]+1)*a; f[i][2]=f[i-1][2]+(3*f[i-1][1]+3*f[i-1][0]+1)*a; } printf("%.1lf",f[n][2]);}
BZOJ 4318: OSU! [DP 概率]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。