zoukankan      html  css  js  c++  java
  • 期望屑题(更新中)

    期望题

    (t1:)单位错选

    这题期望等于概率,值等于(1)

    (a_i=a_{i+1}),随机答案在(i+1)也随机,期望为(largefrac 1 {a_{i+1}})

    (a_i>a_{i+1}),只有(frac{a_{i+1}}{a_i})概率在(1sim a_{i+1})中,期望为(largefrac{a_{i+1}}{a_i}×frac1{a_i+1}=frac1{a_i})

    (a_i<a_{i+1}),随机的答案在(1sim a_i)中,(i+1)题正确答案有(frac{a_i}{a_{i+1}})概率,期望为(frac1{a_{i+1}})

    综上,答案(largesumlimits_{i=1}^nfrac1{max(a_i,a_{i+1})})

    (t2:)CF518D

    也是假期望题,是个概率的

    (f_{i,j})表示第(i)个人,时间为(j)秒的期望人数,考虑是否上电梯

    上,由(f_{i-1,j-1})转移过来,概率为(p)

    不上,由(f_{i,j-1})转移过来,概率(1-p)

    转移方程(f_{i,j}=(1-p)×f_{i,j-1}+p×(f_{i-1,j-1}+1))

    可以滚动数组

    (ans:f_{n,t})

    (t3:)

    反着(dp)(f[i][j])表示考虑了(i)张红牌,(j)张黑牌的期望,(f[i][j]=frac i{i+j}×(f[i-1][j]+1)+frac j{i+j}×(f[i][j-1]-1))

    因为要考虑到停止翻牌这种情况. 和0取max即可.这样每一个状态就都是合法的了.

    注意使用滚动数组!最后答案不进位要特殊处理

    f[now][m] *= 1000000;
    f[now][m] = floor(f[now][m]);
    printf("%.6lf
    ",f[now][m] / 1000000);
    
    (t4:) POJ3071

    (f_{i,j})表示第(i)轮比赛,(j)号获胜的概率,枚举对手

    (f[i][j]+=f[i-1][j]*f[i-1][k]*p[j][k])

    int n;
    double p[N][N],f[10][N];
    int main(){
    	while((~scanf("%d",&n)) && (~n)){
    		for(int i = 0;i < (1<<n);++i)
    			for(int j = 0;j < (1<<n);++j)
    				scanf("%lf",&p[i][j]);
    		memset(f,0,sizeof(f));
    		for(int i = 0;i < (1<<n);++i) f[0][i] = 1;
    		for(int i = 1;i <= n;++i)
    			for(int j = 0;j < (1<<n);++j)
    				for(int k = 0;k < (1<<n);++k)
    					if(((j >> (i-1))^1) == (k >> (i-1)))
    						f[i][j] += f[i-1][j]*f[i-1][k]*p[j][k];
    		double ans=0;
            int idx = -1;
            for(int i = 0;i < (1<<n);i++)
                if(f[n][i] > ans){
                    ans = f[n][i];
                    idx = i+1;
                }
            printf("%d
    ",idx);
    	}	
    
    t5:聪聪与可可

    (f_{x,y})表示聪当前在(x),可在(y),聪吃可的期望步数,(nxt[x][y])表示当前聪在(x),可在(y),聪下一步到哪

    (nxt[x][y]):求出(dis[x][y])表示从(x)(y)的最短路,枚举找最小值

    (f[x][y])可以记忆化搜索,边界为当(x=y)(f[x][y]=0=),当(x)下一步或两步能到(y)时,(f[x][y]=1)

    代码不贴了

  • 相关阅读:
    20165105 学习基础和C语言基础调查
    2017-2018网络攻防第四周作业
    2017-2018-2 20165233 实验三 敏捷开发与XP实践
    20165233 2017-2018-2 《Java程序设计》第九周学习总结
    Linux学习笔记(一)
    第三周学习总结
    数据结构C++,线性表学习
    uname()系统调用学习
    cd
    go连接数据库并执行文件中的sql语句
  • 原文地址:https://www.cnblogs.com/shikeyu/p/13752911.html
Copyright © 2011-2022 走看看