欢迎来到xXchu的博客
xXchu
xXchu
晓看天色暮看云,行也思君,坐也思君

题解 P2719 【搞笑世界杯】

其实懂了之后很简单,但是刚开始真的很难想.。 d[a][b]表示剩a张A类票和b张B类票时,最后两张票相同的概率

那么此时的排队的第一个人只有两种选择 拿A类票或者B类票

抛硬币得到的可能性当然是二分之一,所以说d[i-1][j](当前第一人拿了A类票)和d[i][j-1](当前第一人拿了B类票)各占二分之一

这样的话代码就很简单了。。。。

#include<stdio.h>
#include<iostream>
using namespace std;
double d[1500][1500];
int main()
{
    int n,i,j;
    scanf("%d",&n);
    n/=2;
    for (i=2;i<=n;i++)
    {
        d[i][0]=d[0][i]=1;
    }
    for (i=1;i<=n;i++)
    {
        for (j=1;j<=n;j++)
        {
            d[i][j]=(d[i-1][j]+d[i][j-1])*0.5;
        }
    }
    printf ("%.4lf",d[n][n]);
    return 0;
}
View Code

 

posted @ 2019-09-28 19:34  xXchu  阅读(222)  评论(0编辑  收藏  举报