• Luogu P1365 WJMZBMR打osu! / Easy


    概率期望专题首杀……

    毒瘤dp 首先根据数据范围推断出复杂度在O(n)左右

    但不管怎么想都是n^2……

    晚上躺在床上吃东西的时候(误)想到之前有几道dp题是通过前缀和优化的 而期望的可加性又似乎为此创造了条件

    那么 是不是可以只考虑多一个o对整体期望的贡献?

    很显然,为(x+1)2-x2=2x+1

    那么就额外维护一下就好了

    #include<cstdio>
    #include<iostream>
    using namespace std;
    const int N=300005;
    double p[N],dp[N],f[N];
    char osu;
    int n;
    int main()
    {
    	scanf("%d",&n);getchar();
    	for(int i=1;i<=n;i++)
    	{
    		osu=getchar();
    		switch(osu)
    		{
    			case 'x':p[i]=0;break;
    			case 'o':p[i]=1;break;
    			case '?':p[i]=0.5;break;
    		}
    		f[i]=(f[i-1]+1)*p[i];
    		dp[i]=dp[i-1]+p[i]*(f[i-1]*2+1);
    	}
    	printf("%.4lf",dp[n]);
    	return 0;
    }
    
    兴许青竹早凋,碧梧已僵,人事本难防。
  • 相关阅读:
    内网Windows Server时间自动同步
    处理sqlserver数据
    virtualenv使用
    vue过渡动画效果
    vue视图
    vue组件
    Vue实例
    vue介绍
    Bootstrap布局
    Bootstrap组件
  • 原文地址:https://www.cnblogs.com/Rorschach-XR/p/10969317.html
Copyright © 2020-2023  润新知