2016-2017 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) Problem K Tournament Wins

Problem K — limit 1 second Tournament Wins

 

这个题就是有2^n队伍,他现在的实力水平是第k位,采用的是淘汰制

问一下你他的胜场数的期望

这人能 win>=i 场的概率就是和它同一个半区的 2^i 个人都比他弱啊

所以去枚举这个2^i,E(X)=\sum P(X>=i) 直接搞一下就好了

我每次的概率都在前一次的算,这样避免了多次枚举,之后求下差就好,所以这个算法是2^n的

#include <bits/stdc++.h>
using namespace std;
double p[30];
int main()
{
    int n,k;
    scanf("%d%d",&n,&k);
    int tot=1<<n;
    p[0]=1;k--;
    for(int i=1;(1<<i)<=tot-k;i++)
    {
        p[i]=p[i-1];
        for(int j=tot-(1<<(i-1));j>tot-(1<<i);j--)
            p[i]=p[i]*(j-k)/j;
    }
    double ans=0.;
    for(int i=1;i<=n;i++)
        ans+=(p[i]-p[i+1])*i;
    printf("%.5f",ans);
    return 0;
}

 

转载于:https://www.cnblogs.com/BobHuang/p/7605150.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值