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