传送门


如果在\(0\)以下之后仍然会减分,那么最后的结果一定是\(N-M\)。

注意到如果在Alice分数为\(0\)时继续输,那么就相当于减少了一次输的次数。也就是说如果说在总的博弈过程中,Alice在分数等于\(0\)时输了\(x\)次,那么最后的结果就是\(N-M+x\)。

不妨考虑一个序列\(a_i\),如果\(a_i = 1\)表示Alice第\(i\)局输了,\(a_i = -1\)表示第\(i\)局赢了,那么不难发现\(x =\)序列\(a_i\)的最大前缀和。不妨设\(max_a\)表示序列\(a\)的最大前缀和。然后可以发现序列\(a_i\)与格路问题有一些相似:从\((0,0)\)开始走路,如果\(a_i = 1\)则第\(i\)步向上走一格,否则向右走一格,那么一个满足条件的序列\(a\)是一个从\((0,0)\)到\((N,M)\)的路径,而\(max_a\)等于这条路径上所有的点中\(y-x\)的最大值。

对于一组询问,我们要求的就是\(Ans = \sum\limits_{t} max_t\),当\(N > M\)时\(Ans = \sum\limits_{i=1}^M \sum\limits_{t} [max_t \geq i]\),当\(N \leq M\)时\(Ans = M - N + \sum\limits_{i = M - N + 1} ^ M \sum\limits_{t} [max_t \geq i]\)。

对于\(i \in [\max(M - N , 0) + 1 , M]\),\(\sum\limits_t [max_t \geq i]\)相当于从\((0,0)\)到\((N,M)\)必须经过\(y = x + i\)的路径条数,这是格路问题的经典问题,不难得到答案是\(\binom{N+M}{M - i}\)。

那么当\(N > M\)时\(Ans = \sum\limits_{i=1}^M \binom{N + M}{M - i} = \sum\limits_{i=0}^{M - 1} \binom{N + M}{i}\),当\(N \leq M\)时\(Ans = M - N + \sum\limits_{i=0}^{N - 1} \binom{N + M}{i}\)。

那么如果我们可以快速求出\(f(x,y) = \sum\limits_{i=0}^x \binom{y}{i}\)就可以快速求解。

注意到这是一个二元组询问,似乎不能直接做,不妨考虑莫队。那么我们需要在知道\(f(x,y)\)时\(O(1)\)求出\(f(x,y \pm 1)\)以及\(f(x \pm 1,y)\)。后者可以直接做,对于前者可以使用\(\binom{y}{x} = \binom{y - 1}{x} + \binom{y - 1}{x - 1}\)得到一种\(O(1)\)的转移方法。

代码

LOJ6300 博弈论与概率统计 组合、莫队的更多相关文章

  1. 【HDU 5145】 NPY and girls(组合+莫队)

    pid=5145">[HDU 5145] NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Other ...

  2. loj6300 「CodePlus 2018 3 月赛」博弈论与概率统计

    link 题意: A和B玩游戏,每轮A赢的概率为p.现在有T组询问,已知A赢了n轮输了m轮,没有平局,赢一局A得分+1,输一局得分-1,问A得分期望值? $n+m,T\leq 2.5\times 10 ...

  3. LOJ6300 BZOJ5283 [CodePlus 2018 3 月赛]博弈论与概率统计

    一道好题!很久以前就想做了,咕到了现在,讲第二遍了才做. 首先我们观察到$p$是没有用的 因为赢的次数一定 那么每一种合法序列出现的概率均为$p^n*(1-p)^m$ 是均等的 我们可以不看它了 然后 ...

  4. bzoj 5283: [CodePlus 2018 3 月赛]博弈论与概率统计

    Description 大家的好朋友小 L 来到了博弈的世界.Alice 和 Bob 在玩一个双人游戏.每一轮中,Alice 有 p 的概率胜利,1 -p 的概率失败,不会出现平局.双方初始时各有 0 ...

  5. [CodePlus 2018 3 月赛] 博弈论与概率统计

    link 题意简述 小 $A$ 与小 $B$ 在玩游戏,已知小 $A$ 赢 $n$ 局,小 $B$ 赢 $m$ 局,没有平局情况,且赢加一分,输减一分,而若只有 $0$ 分仍输不扣分. 已知小 $A$ ...

  6. [Code+#3]博弈论与概率统计

    题目 记得曾经和稳稳比谁后抄这个题的题解,看来是我输了 不难发现\(p\)是给着玩的,只需要求一个总情况数除以\(\binom{n+m}{n}\)就好了 记\(i\)为无效的失败次数,即\(\rm A ...

  7. BZOJ2038 (莫队)

    BZOJ2038: 小Z的袜子 Problem : N只袜子排成一排,每次询问一个区间内的袜子种随机拿两只袜子颜色相同的概率. Solution : 莫队算法真的是简单易懂又暴力. 莫队算法用来离线处 ...

  8. 【BZOJ】2038: [2009国家集训队]小Z的袜子(hose)(组合计数+概率+莫队算法+分块)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2038 学了下莫队,挺神的orzzzz 首先推公式的话很简单吧... 看的题解是从http://for ...

  9. hdu_5145_NPY and girls(莫队算法+组合)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5145 题意:给你n,m,共有n个女孩,标号为1—n,n个数xi表示第ith个女孩在第xi个教室,然后下 ...

随机推荐

  1. Centos 7 更换为 阿里云 yum 源

    地址: https://opsx.alibaba.com/ 操作步骤: 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentO ...

  2. Beta冲刺(3/5)

    队名:無駄無駄 组长博客 作业博客 组员情况 张越洋 过去两天完成了哪些任务 数据库实践的报告 提交记录(全组共用) 接下来的计划 加快校园百科的进度 还剩下哪些任务 学习软工的理论课 学习代码评估. ...

  3. Oracle in不超过1000,List<String>参数拆分,代码举例

    public Map<String,Map<String, Object>> getConsInfo(List<String> consIdList) { Map& ...

  4. Clion下同时编写多个main函数

    在你的CMakeLists.txt文件下配置,使用add_executable(),前面的一定要不一样 红色部分是描述main的,配置后运行处可以选择:

  5. OpenFOAM计算结果转换到CFD-Post当中处理

    我们编写如下的Python代码 源代码:

  6. sparkUI

    sparkUI 源码: https://www.cnblogs.com/barrenlake/p/4364644.html 页面介绍: https://blog.csdn.net/qq_2763977 ...

  7. BASE64使用场景

    BASE64使用场景 Base64就是一种基于64个可打印字符来表示二进制数据的方法. Base64编码是从二进制到字符的过程. 在项目中,将报文进行压缩.加密后,最后一步必然是使用base64编码, ...

  8. rk3288 usb无线网卡支持 8188eu

    第一部分是kernel 内核配置参考rk文档,把device driver 下wireless相关的先勾选上. 编译到buildin有问题,识别不到,所以打算编译成ko cd  kernel/driv ...

  9. flask 开发用户登录注册功能

    flask 开发用户登录注册功能 flask开发过程议案需要四个模块:html页面模板.form表单.db数据库操作.app视图函数 1.主程序 # app.py # Auther: hhh5460 ...

  10. java excel给单元格增加批注(包含SXSSF)

    package javatest; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi ...