BZOJ 4318 OSU!(期望的线性性)

105 篇文章 0 订阅
16 篇文章 0 订阅

题目
首先我们来考虑一个简化的问题:每个位置有a种方案选1,b种方案选0,求x^3的总和.
那么由:
x 3 = ( x − 1 ) 3 + 3 ( x − 1 ) 2 + 3 ( x − 1 ) + 1 x^3 = (x-1)^3 + 3(x-1)^2+3(x-1)+1 x3=(x1)3+3(x1)2+3(x1)+1
再统计一下 3 ( x − 1 ) 2 + 3 ( x − 1 ) + 1 3(x-1)^2+3(x-1)+1 3(x1)2+3(x1)+1
就行了。

那么期望就是除上一个总方案数。。。。。。
一遇期望就降智。
你也可以说根据期望的线性性,你可以拿
E ( x 3 ) = E ( ( x − 1 ) 3 ) + E ( 3 ( x − 1 ) 2 ) + E ( 3 ( x − 1 ) ) + 1 E(x^3) = E((x-1)^3) + E(3(x-1)^2)+E(3(x-1))+1 E(x3)=E((x1)3)+E(3(x1)2)+E(3(x1))+1
直接算就是。

AC Code:

#include<bits/stdc++.h>
using namespace std;

int n;
double E[2][3];

int main()
{
	scanf("%d",&n);
	int now = 1 , pre = 0;
	for(int i=1;i<=n;i++,swap(now,pre))
	{
		double p;
		scanf("%lf",&p);
		E[now][2] = E[pre][2] + p * (3 * E[pre][1] + 3 * E[pre][0] + 1);
		E[now][1] = p * (E[pre][1] + 2 * E[pre][0] + 1);
		E[now][0] = p * (E[pre][0] + 1);
	}
	printf("%.1lf\n",E[pre][2]);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值