• 51nod 1630(定积分 + 期望)


    51nod1630

    1. 每个人进入竞技场后,会等概率随机匹配一个人,匹配到的人与当前胜利和失败场数无关。
    2. 胜利达到x场,或失败达到y场后,退出竞技场,根据退出时的胜利场数获得奖励,不能中途放弃。
    3. 水平高的选手,总能战胜水平低的选手,不存在水平相等的人。
    4. 竞技场有无穷多的人。

    某人水平在所有人中等概率,等求退出的期望胜利场数。


    Solution

    ​一道妙题。

    观察题目,可以发现因为有无穷多的人,所以如果当你的水平确定下来后,胜率的改变可以忽略不计,例如如果有(n)个人,那么你(i)水平的胜率就是(frac{i-1}{n})

    ​如果我们确定了一个胜率,这题则十分的容易在一个dp时间复杂度解决。

    然而胜率可以看做是([0,1])区间上的任意小数,根据定积分的思想,我们把区间分成尽量多的段数,然后取平均值作为答案。但这样的时间复杂度与精度不能同时保障。

    考虑把dp看做一个多项式,一个关于胜率p的多项式,我们可以在最后把(p)带进去,这样时间复杂度可以通过(nle 10,mle 10)的所有数据。

    (100\%)的数据下,(n,mle 20),此时我们需要用到定积分的求解公式,像这样:

    void Doit(db a[], int win) {
    	db sum = 0;
    	F(i, 1, a[0])
    		sum += a[i] / i;
    	Ans = Ans + sum * win;
    }
    
  • 相关阅读:
    google说 老子 = I !
    昨日种种死 今日种种生
    设定Access数据库自增长字段初始值
    [c路历程]品品数组这杯茶
    爱上位运算
    .Net中的委托
    Jquery css函数用法(判断标签是否拥有某属性)
    记录几条简单的正则表达式
    ASP.NET MVC中DropDownList的使用
    C#如何获取object对象的属性值
  • 原文地址:https://www.cnblogs.com/Pro-king/p/10789673.html
Copyright © 2020-2023  润新知