zoukankan      html  css  js  c++  java
  • BZOJ4318: OSU!

    题目地址

    https://www.lydsy.com/JudgeOnline/problem.php?id=4318

    题解

    虽然期望函数(E(x))是个线性函数,满足(E(ax)=aE(x)),但是这道题并不能用这个性质..因为前面连续0个数的平方的期望和前面连续0个数的期望的平方并不是一个东西...(E(x)^2 ot = E^2(x)!)
    所以需要维护两个东西:前面连续0个数的平方的期望和前面连续0个数的期望。
    这个两个东西挺好转移的。
    显然(g[i]=p[i] imes(g[i-1]+1))
    然后由完全平方公式可得,(g_1[i]=p[i] imes (g_1[i-1]+2 imes g[i-1]+1))
    然后根据二项式定理,((a+b)^3)的系数为1 3 3 1,然后直接和前面的(g_1)一样,改一下系数转移即可。
    (f[i]=f[i-1]+p[i]*(3g[i-1]+3g_1[i-1]+1))

    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 100010;
    
    int n;
    double g[N], f[N], p[N], g1[N];
    
    int main() {
    	scanf("%d", &n);
    	for(int i = 1; i <= n; ++i) scanf("%lf", &p[i]);
    	for(int i = 1; i <= n; ++i) {
    		g[i] = (double)p[i] * (g[i - 1] + 1.0);
    		g1[i] = (double)p[i] * (g1[i - 1] + 2.0 * g[i - 1] + 1.0);
    		f[i] = f[i - 1] + (double)p[i] * (1.0 + 3.0 * g[i - 1] + 3.0 * g1[i - 1]);
    	}
    	printf("%.1lf
    ", f[n]);
    }
    
  • 相关阅读:
    Minimum Size Subarray Sum 最短子数组之和
    mutiplemap 总结
    Remove-Invalid-Parentheses-题解
    Splay-Tree理解
    Subsets LeetCode总结
    Trie树理解
    Treap树理解
    Trie树之C-实现
    word-ladder总结
    Javascript 对象
  • 原文地址:https://www.cnblogs.com/henry-1202/p/11448467.html
Copyright © 2011-2022 走看看