• loj #6191. 「美团 CodeM 复赛」配对游戏 期望dp


    题意:有一个栈,随机插入 $n$ 次 $0$/$1$

    如果栈顶是 $1$,然后插入 $0$,则将这两个元素都弹出,否则,插入栈顶.

    求:$n$ 次操作后栈中期望的元素个数.

    我们发现,按照上述弹栈方式进行,栈中元素一定是由若干个连续 $0$ 加上若干个连续 $1$ 组成.

    而 $1$ 所在的联通块还在栈顶,所以我们只需考虑 $1$ 的个数即可.

    令 $f[i][j]$ 表示 $i$ 次操作过后,栈中有 $j$ 个 $1$ 时期望的元素个数.

    由于期望在任何时候都有可加性,所以 $f[i+1][]$ 的期望可以表示成 $f[i][]$ 加上新加入/删掉 $1$ 的期望.

    我们令 $p[i][j]$ 表示 $i$ 轮操作后栈中有 $j$ 个 $1$ 的概率,那么有 $frac{f[i][j]+p[i][j]}{2} ightarrow f[i+1][j+1]$

    因为 $i$ 轮后有 $j$ 个 $1$ 的期望个数是 $f[i][j]$,而下一轮要保证抽到的还是 $1$,所以概率为 $frac{1}{2}$

    即 $f[i][j] imes frac{1}{2}$ 但是在当前局面增加的长度绝对不是 $frac{1}{2}$ 因为期望等于概率乘以权值.

    而 $i$ 轮后有 $j$ 个 $1$ 的长度的概率是 $p[i][j]$,而下一次还抽到 $1$ 的概率是 $frac{1}{2}$,权值是 $1$

    所以累加的是 $frac{p[i][j]}{2}$

    整理可得 $frac{f[i][j]+p[i][j]}{2} ightarrow f[i+1][j+1]$,$frac{f[i][j]-p[i][j]}{2} ightarrow f[i+1][j-1]$

    这种用概率来转移期望的套路还真是挺巧妙的~

    #include <bits/stdc++.h>    
    #define N 2004   
    #define LL long long 
    #define setIO(s) freopen(s".in","r",stdin) 
    using namespace std;    
    double p[N][N],f[N][N];   
    int main() 
    { 
    	// setIO("input"); 
    	int i,j,n; 
    	scanf("%d",&n), p[0][0]=1;   
    	double ans=0.0; 
    	for(i=0;i<n;++i)        
    	{
    		p[i+1][1]+=p[i][0]/2, f[i+1][1]+=(f[i][0]+p[i][0])/2;                    
    		p[i+1][0]+=p[i][0]/2, f[i+1][0]+=(f[i][0]+p[i][0])/2;              
    		for(j=1;j<n;++j) 
    		{
    			p[i+1][j+1]+=p[i][j]/2, f[i+1][j+1]+=(f[i][j]+p[i][j])/2;             
    			p[i+1][j-1]+=p[i][j]/2, f[i+1][j-1]+=(f[i][j]-p[i][j])/2;       
    		}
    	} 
    	for(i=0;i<=n;++i)   ans+=f[n][i];    
    	printf("%.3f
    ",ans);         
    	return 0; 
    }      
    

      

  • 相关阅读:
    【UGUI】源码 -- 0总框架
    【Unity】 细说AssetBundle
    Unity文件引用、meta文件详解
    ( 资源管理器03 )Prefab加载自动化管理引用计数管理器
    ( 资源管理器 02 )AssetBundle 同步异步引用计数资源加载管理器
    ( 资源管理器 01 )Asset同步异步引用计数资源加载管理器
    git status 显示中文和解决中文乱码
    C# 16进制与字符串、字节数组之间的转换
    mac地址转byte数组
    unity插件调用打印机
  • 原文地址:https://www.cnblogs.com/guangheli/p/11799139.html
Copyright © 2020-2023  润新知