简单网站模板,wordpress前端登陆,北京免费网站制作,西安开发网站的公司期望收益
金牌导航 期望-3
题目大意
给你一个01串#xff0c;有些位置是未知的#xff0c;连续的x个1贡献为想x2x^2x2#xff0c;现在问你该串的期望贡献
输入样例
4
????输出样例
4.1250数据范围 1⩽n⩽31051\leqslant n \leqslant 3\times 10^51⩽n⩽3105
解题…期望收益
金牌导航 期望-3
题目大意
给你一个01串有些位置是未知的连续的x个1贡献为想x2x^2x2现在问你该串的期望贡献
输入样例
4
????输出样例
4.1250数据范围
1⩽n⩽3×1051\leqslant n \leqslant 3\times 10^51⩽n⩽3×105
解题思路
设fif_ifi为前i个数的期望贡献sis_isi为以i为右端的连续1的期望长度 对当前位置为1的贡献把(x1)2(x1)^2(x1)2拆成x22×x1x^22\times x 1x22×x1 x2x^2x2为原有贡献 2×x2\times x2×x就是乘期望长度 然后分类DP即可
代码
#includecstdio
#includecstring
#includeiostream
#includealgorithm
#define ll long long
#define N 300010
using namespace std;
int n;
double f[N], s[N];
string str;
int main()
{scanf(%d, n);cinstr;for (int i 1; i n; i){if (str[i - 1] o)//当前位置为1{f[i] f[i - 1] s[i - 1] * 2 1;s[i] s[i - 1] 1;}else if (str[i - 1] x)f[i] f[i - 1];else{f[i] f[i - 1] (s[i - 1] * 2 1) / 2;//各有一半的概率s[i] (s[i - 1] 1) / 2;}}printf(%.4lf, f[n]);return 0;
}