LOJ6300 博弈论与概率统计 组合、莫队
如果在\(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 博弈论与概率统计 组合、莫队的更多相关文章
- 【HDU 5145】 NPY and girls(组合+莫队)
pid=5145">[HDU 5145] NPY and girls(组合+莫队) NPY and girls Time Limit: 8000/4000 MS (Java/Other ...
- 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 ...
- LOJ6300 BZOJ5283 [CodePlus 2018 3 月赛]博弈论与概率统计
一道好题!很久以前就想做了,咕到了现在,讲第二遍了才做. 首先我们观察到$p$是没有用的 因为赢的次数一定 那么每一种合法序列出现的概率均为$p^n*(1-p)^m$ 是均等的 我们可以不看它了 然后 ...
- bzoj 5283: [CodePlus 2018 3 月赛]博弈论与概率统计
Description 大家的好朋友小 L 来到了博弈的世界.Alice 和 Bob 在玩一个双人游戏.每一轮中,Alice 有 p 的概率胜利,1 -p 的概率失败,不会出现平局.双方初始时各有 0 ...
- [CodePlus 2018 3 月赛] 博弈论与概率统计
link 题意简述 小 $A$ 与小 $B$ 在玩游戏,已知小 $A$ 赢 $n$ 局,小 $B$ 赢 $m$ 局,没有平局情况,且赢加一分,输减一分,而若只有 $0$ 分仍输不扣分. 已知小 $A$ ...
- [Code+#3]博弈论与概率统计
题目 记得曾经和稳稳比谁后抄这个题的题解,看来是我输了 不难发现\(p\)是给着玩的,只需要求一个总情况数除以\(\binom{n+m}{n}\)就好了 记\(i\)为无效的失败次数,即\(\rm A ...
- BZOJ2038 (莫队)
BZOJ2038: 小Z的袜子 Problem : N只袜子排成一排,每次询问一个区间内的袜子种随机拿两只袜子颜色相同的概率. Solution : 莫队算法真的是简单易懂又暴力. 莫队算法用来离线处 ...
- 【BZOJ】2038: [2009国家集训队]小Z的袜子(hose)(组合计数+概率+莫队算法+分块)
http://www.lydsy.com/JudgeOnline/problem.php?id=2038 学了下莫队,挺神的orzzzz 首先推公式的话很简单吧... 看的题解是从http://for ...
- hdu_5145_NPY and girls(莫队算法+组合)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5145 题意:给你n,m,共有n个女孩,标号为1—n,n个数xi表示第ith个女孩在第xi个教室,然后下 ...
随机推荐
- 2019qbxt游记
Day 1 2019.8.6 来到qbxt的第一天,虽然早就对宾馆的等级做好了准备,但是还是十分的失望,外观是真的很简陋,不过里面还好的,,可以凑合. 我竟然和lbh一个宿舍!!!这次外出学习必将不安 ...
- Jedis:Exception in thread "main" java.lang.VerifyError: Bad type on operand stack
Exception in thread "main" java.lang.VerifyError: Bad type on operand stackException Detai ...
- windows sh.exe 中文乱码
idea 需要重启 export LANG=zh_CN.utf-8 alias ls='ls --show-control-chars --color=auto'
- office2010安装不了提示已经安装32位的了怎么办
1.打开控制面板,查看是否有安装的程序没有拆卸,如果没有继续往下看,如果有直接拆卸掉,再进行下面的步骤. 2.首先打开注册列表.按下win+R键即可打开,输入regedit,也可以在开始菜单中搜索re ...
- 第12组 Beta冲刺(5/5)
Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...
- fastJson反序列化参数为null的问题
fastJson反序列化为类对象时,反序列化赋值的属性只会是你构造器上写的属性. 所以部分属性值为null的原因是属性没有加在构造器上的原因. 直接加个无参数的默认构造器即可解决.或者把null属性加 ...
- C# 最简单的使程序单进程运行的方法
1.代码1 static void Main() { Process current = Process.GetCurrentProcess(); Process[] processes = Proc ...
- Bi-Directional ConvLSTM U-Net with Densley Connected Convolutions
Bi-Directional ConvLSTM U-Net with Densley Connected Convolutions ICCV workshop 2019 2019-09-15 11 ...
- 详解python3如何调用c语言代码
本文链接:https://blog.csdn.net/u012247418/article/details/80170690开发环境linux: python3.5.2 + ubuntu-gnome- ...
- 迁移Git项目到Gitlab
假定Gitlab已经安装, 假定要迁移的Git项目目录为 demo 首先在Gitlab里创建一个新的project, 名称为demo (或者其他名称都可以) 然后在现有的Git项目目录下, 进行以下操 ...