zoukankan      html  css  js  c++  java
  • [Code+#3]博弈论与概率统计

    题目

    记得曾经和稳稳比谁后抄这个题的题解,看来是我输了

    不难发现(p)是给着玩的,只需要求一个总情况数除以(inom{n+m}{n})就好了

    (i)为无效的失败次数,即( m Alice)在得分为(0)时的失败次数,那么最后的得分就是(n-m+i)

    不妨将赢看成(1)输看成(-1),我们把输赢情况写成一个(n+m)的序列,记这个序列的最小前缀和为(t),那么无效失败次数就是(|min(0,t)|),也就是当(t<0)的时候,得分应为(n-m+|t|)

    证明的话,考虑一种构造方法,我们把对最小前缀和产生影响的(t)(-1)拿出来,显然两个(-1)之间的数的和应为(0),和为(0)意思就是分数可能涨了涨但最后又扣成(0)了,于是在得分为(0)的时候失败的次数就是(t)

    之后套路的转化成一个平面上的问题,将(-1)视为向上走,(1)视为向右走,那么无效失败次数为(i)的方案数等价与在坐标系上从((0,0))走到((n,m))且经过至少一次(y=x+i)且不超过的方案数

    简单容斥一下,求一下严格低于(y=x+i+1)的方案数减一下严格低于(y=x+i)的方案数就好了

    这个老哥的博客里的图挺好的

    对于一个不合法的方案,我们取第一次达到(y=x+i)之前的路径,并将这段路径沿(y=x+i)翻折,就得到了一条从((-i,i))((n,m))的路径,不难发现这样的路径会经过至少一次(y=x+i),所以这样的路径和不合法的路径是一一对应的,显然这样的路径条数是(inom{n+m}{n+i})

    于是严格低于(y=x+i)的路径条数就是(inom{n+m}{n}-inom{n+m}{n+i}),于是恰好经过经过至少一次(y=x+i)且不超过的方案数为(inom{n+m}{m}-inom{n+m}{n+i+1}-inom{n+m}{n}+inom{n+m}{n+i}=inom{n+m}{n+i}-inom{n+m}{n+i+1})

    对于(ngeq m)的情况,我们求得即为(sum_{i=0}^m(n-m+i)(inom{n+m}{n+i}-inom{n+m}{n+i+1}))

    简单划开就会发现求得其实是((n-m)inom{n+m}{m}+sum_{i=0}^{m-1}inom{n+m}{n+i})

    多组询问求后面那个柿子好像还是一道题来着,直接大力莫队即可

  • 相关阅读:
    GNU make manual 翻译(九十九)
    GNU make manual 翻译( 九十五)
    Shell的 for 循环小例子
    makefile中对目录遍历的小例子
    GNU make manual 翻译(九十三)
    GNU make manual 翻译( 一百)
    GNU make manual 翻译( 九十七)
    GNU make manual 翻译( 九十八)
    mapserver4.8.3 的readme.win32的中文翻译文件
    遥控器编程
  • 原文地址:https://www.cnblogs.com/asuldb/p/11997682.html
Copyright © 2011-2022 走看看