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个教室,然后下 ...
随机推荐
- Android中如何引入已经存在的标题栏
在写程序中很多时候很多页面的标题布局大致都是一样的,这时候不需要挨着都写一遍,只需要写一个xml文件,在所需要的时候进行引用就可以了 只需要这一行代码: <include layout=&quo ...
- 集成了SSM框架的系统怎么做测试?
1.首先在测试文件夹下新建一个测试基类BaseTest BaseTest中的代码如下: package wbl_ssm_blog.mapper; import org.junit.Test; impo ...
- 安装关系型数据库MySQL 安装大数据处理框架Hadoop
作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3161 1.Hadoop的介绍 Hadoop最早起源于Nutch.Nut ...
- epoll 或者 kqueue 的原理是什么?
来自知乎:http://www.zhihu.com/question/20122137 epoll 或者 kqueue 的原理是什么? 为什么epoll和kqueue可以用基于事件的方式,单线程的实现 ...
- Python绘制3D图形
来自:https://www.jb51.net/article/139349.htm 3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行 ...
- PHP系列 | ThinkPHP5数据库迁移工具 migration
了解更多,请关注微信公众号 ThinkPHP5数据库迁移工具 migration 什么是Migration? migration用谷歌翻译是移民的意思,在PHP中我们将它理解为迁移,将Migratio ...
- win7下查看进程端口
一. 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano 可以查看所有进程 二.查看占用指定端口的程序 当你在用tomcat发布程序时,经常会遇到端口被占用的情况,我们想知道 ...
- linux shell中如何批量添加一行内容到某些文件的末尾?
答:先使用find找出要指定的某些文件,然后使用xargs和sed工具将内容插入到这些文件的末尾 find . -name 'filename*' | xargs sed -i '$a\added-c ...
- 使用create-react-app遇到问题解决方案汇总
使用create-react-app时遇到Module not found问题 转 https://blog.csdn.net/wkq_1212/article/details/90291558 本来 ...
- 【原创】MongoDB安装配置详解(标注两个坑)
1.下载安装 3.4正式版([坑]不要最新版,有可能进度卡在这个位置不动,等了半个小时也没什么反映,) http://downloads.mongodb.org/win32/mongodb-win32 ...