#2037. 龙骑士和SCOG

龙骑士和SCOG

题目描述

龙骑士在玩一款名为SCOG\red{SCOG}的射击类游戏。他需要对一些目标进行射击。每次射击有两种结果:命中 或打偏。我们定义射中的情况为‘O\red{O}’,射偏的情况为‘X\red{X}’,那么,对于n\red{n}次射击,则可以被写成一个长度 为n\red{n}的由字符‘X\red{X}’或‘O\red{O}’组成的字符串。

用这个字符串你可以用以下的方法计算游戏的得分:对于一个极大的连续的"O\red{O}"连续命中,将连续命中 的次数的平方加入到总得分中(即连续的"O\red{O}"的个数的平方)。举例说明,如果龙骑士的命中情况 为"OOXOOOXXOO\red{OOXOOOXXOO}",那么极大连续的"O\red{O}"连续命中共有三个:"OO\red{OO}","OOO\red{OOO}","OO\red{OO}",所以你的总得分 为22+32+22=17\red{2^2+3^2+2^2=17}。如果整局游戏里没有一次成功命中那么总得分就为0\red{0}

你现在知道了龙骑士在第i\red{i}(1<=i<=n)\red{(1<=i<=n)}射击的命中率为pi\red{p_i,}换句话说,字符串中第i\red{i}个字符有pi\red{p_i} 的概率成为"O\red{O}",有1pi\red{1-p_i}的概率成为"X\red{X}",你的任务是算出龙骑士玩这一局SCOG\red{SCOG}的总得分的期望 值。

输入格式

第一行包含一个整数表示一局的射击次数 (1<=n<=105)\red{(1<=n<=10^5)}

第二行包含n\red{n}个由空格间隔开的实数p1,P2,...,pn(0<=pi<=1)\red{p_1,P_2,...,p_n(0<=p_i<=1)}输入的pi\red{p_i}最多为六位小数

输出格式

输出一个实数——龙骑士游戏的期望得分。你的答案需要保留三位小数

样例

输入样例

3
0.5 0.5 0.5

输出样例

2.750

提示

3\red{3}位字符串一共有8\red{8}种不同的情况。每一种出现的概率为0.125\red{0.125}所以期望得分是(9+4+2+1+\red{(9 + 4 + 2 + 1 +} 4+1+1)/8=2.75\red{4 + 1 + 1)/8 = 2.75}

数据范围:

对于10%\red{10\%}的数据,n<=10\red{n <= 10}

对于40%\red{40\%}的数据,n<1000\red{n < 1000}

对于100%\red{100\%}的数据,n<=105\red{n <= 10^5}

统计

相关

在下列比赛中:

入门班2