题目

显然期望dp。

简单想法:

f[i][j]表示前i个人中向右看并且没有被消除的人数的概率

如果第i+1个人是向右,$f[i+1][j+1]=f[i][j]/2$

如果第i+1个人是向左,$f[i+1][j-1]=f[i][j]/2$

最后期望总和是$\sum_{i=0}^{n} i*f[n][i]$

转移没有问题,但容易发现这样算出来的期望剩余人数没有算上向左看的。

什么意思呢?我们都知道期望=数量(人数)*概率,但这里dp只设了向右看的人数状态,虽然也包括了所有向左看的情况,但最后算期望的时候,每种向右看的人数情况的概率所乘的人数 只有向右看的而没有向左看的,这样就忽略了最终剩下的向左看的人数对期望的影响。

比如当j=0,也就是向右看的人数为0时,期望=向右看人数*概率=0*概率=0,但很明显这种情况下向左看的人数还有很多种情况,它们的人数并没有被算上。

但稍微一观察就会发现,向右看和向左看的情况好像是一样的,因此最终期望就等于之前算出的期望总和*2。

这又是什么意思?要把向左看的人算上,还得设个g[i][j]表示前i个人中向左看并且没有被消除的人数的概率,然后转移和期望求和方法与向右看的相同,只是这样的话期望剩余人数就只算上了向左看的而没算上向右看的

那么期望和就是$\sum_{i=0}^{n} i*(f[n][i]+g[n][i])$

也就是说要证明f[n][i]=g[n][i],才能证明向右看的答案*2是正确的。

我们知道,最后剩下的人一定是前一段向左看,后一段向右看,比如<<<>>>>。中间被消掉的一定都是有相对关系的。

那把剩下的人的序列完全对称,得到这个对称序列的概率和对称前是相等的。

就上面那个例子,对称后就得到了<<<<>>>,与原序列<<<>>>>的出现概率相等,只是把向右看的都改为放向左看的,反之亦然而已。数学化地讲:两序列dp形式分别是$f[n][4]$和$g[n][4]$,而两个式子的转移方法相同,所以是等价的。

而每种向右看的情况都对应一种向左看的情况(只要对称就得到了这样一种合法情况),前者向右看的人数和后者向左看的人数相等,即$f[n][i]=g[n][i] | 0\leq i \leq n$。得证。

所以答案为$(\sum_{i=0}^{n} i*f[n][i])*2$

如果没发现对称性,可以直接设期望,比如这篇博客。也可以自行百度其他 dp设期望 的方式。

代码过短不放了

【loj6191】「美团 CodeM 复赛」配对游戏的更多相关文章

  1. LibreOJ #6191. 「美团 CodeM 复赛」配对游戏

    二次联通门 : LibreOJ #6191. 「美团 CodeM 复赛」配对游戏 /* LibreOJ #6191. 「美团 CodeM 复赛」配对游戏 概率dp */ #include <cs ...

  2. 【loj6191】「美团 CodeM 复赛」配对游戏 概率期望dp

    题目描述 n次向一个栈中加入0或1中随机1个,如果一次加入0时栈顶元素为1,则将这两个元素弹栈.问最终栈中元素个数的期望是多少. 输入 一行一个正整数 n . 输出 一行一个实数,表示期望剩下的人数, ...

  3. loj #6191. 「美团 CodeM 复赛」配对游戏 期望dp

    题意:有一个栈,随机插入 $n$ 次 $0$/$1$ 如果栈顶是 $1$,然后插入 $0$,则将这两个元素都弹出,否则,插入栈顶. 求:$n$ 次操作后栈中期望的元素个数. 我们发现,按照上述弹栈方式 ...

  4. LOJ #6192. 「美团 CodeM 复赛」城市网络 (树上倍增)

    #6192. 「美团 CodeM 复赛」城市网络 内存限制:64 MiB 时间限制:500 ms 标准输入输出   题目描述 有一个树状的城市网络(即 nnn 个城市由 n−1n-1n−1 条道路连接 ...

  5. LibreOJ #6192. 「美团 CodeM 复赛」城市网络

    #6192. 「美团 CodeM 复赛」城市网络 内存限制:64 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: sqc 提交提交记录统计讨论测试数据   题目描 ...

  6. 「美团 CodeM 复赛」城市网络

    题目链接 题意分析 首先 \([u,v]\)在树上是一条深度递增的链 那么我们可以使用倍增找 \(x\)的祖先当中深度最大的值大于\(x\)的点 然后维护一个\(pre\) 重新建树 这样从\(x\) ...

  7. 美团 CodeM 复赛」城市网络

    美团 CodeM 复赛」城市网络 内存限制:64 MiB时间限制:500 ms标准输入输出 题目描述 有一个树状的城市网络(即 nnn 个城市由 n−1n-1n−1 条道路连接的连通图),首都为 11 ...

  8. [LOJ 6213]「美团 CodeM 决赛」radar

    [LOJ 6213]「美团 CodeM 决赛」radar 题意 给定 \(n\) 个横坐标 \(x_i\) , 为它们选择一个不超过 \(y_i\) 的纵坐标 \(h_i\), 产生 \(c_ih_i ...

  9. LibreOJ #6212. 「美团 CodeM 决赛」melon

    二次联通门 : LibreOJ #6212. 「美团 CodeM 决赛」melon /* LibreOJ #6212. 「美团 CodeM 决赛」melon MDZZ 这是决赛题?? */ #incl ...

随机推荐

  1. 后台安装 SQL Server 无人值守 安装

    (开头闲淡)项目需要必须安装SQL的,查了很久,断断续续用了各种方法,今天终于用了正确的姿(xia)势(mo)弄成了. 最开始用的方法是调用Win的API模拟鼠标操作安装的,嗯,虽然勉强可以,就是有些 ...

  2. 宠溺旧习,win10清单-配置与软件

    从win98到win7塑就的旧“习 不是一两天能随了win10的任性 输入法反win X的头疼与苦恼 开机总要输密码的麻烦与滋扰 还有着一些莫名其妙的问题, 在过往与如今的交织间错乱. -序 好吧,其 ...

  3. Python 目录和文件基本操作

    今天在写一个小工具的过程中发现对目录和文件的基本操作不是很熟,特此把遇到的常用操作总结汇总下. 获取当前路径:os.getcwd() 目录操作:1.创建目录:os.mkdir('目录名')2.创建多级 ...

  4. Sublime 设置移动光标快捷键

    发现问题 在使用Sublime和其他编辑器一个很不爽的问题是:在输入一个函数或者有左右的符号或者在引号内时,总是要跳出来,无奈方向键又在主键盘的另一边,只能不断的切换,太特么操蛋,就不能让手指不离开主 ...

  5. 第八篇:cx_Oracle出现的问题

    1.cx_Oracle.DatabaseError: ORA-24315: illegal attribute type 2.cx_Oracle.InterfaceError: Unable to a ...

  6. python基础一 day13 复习

    # 函数 —— 2天 # 函数的定义和调用 # def 函数名(形参): #函数体 #return 返回值 #调用 函数名(实参) # 站在形参的角度上 : 位置参数,*args,默认参数(陷阱),* ...

  7. 公共Service的抽取小例

    package cn.sxx.service; import java.util.List; public interface BaseService<T,Q> { public void ...

  8. MYSQL 注射精华

    前言鄙人今天心血来潮突然想写篇文章,鄙人从来没写过文章,如果有错误的地方请多多指教.本文需要有基础的SQL语句知识才可以更好的理解.建议想学习的人多去了解一下SQL语句和编程语言,知己知彼才能百战百胜 ...

  9. iOS 设计模式

    很赞的总结 iOS Design Patterns 中文版 IOS设计模式之一(MVC模式,单例模式) IOS设计模式之二(门面模式,装饰器模式) IOS设计模式之三(适配器模式,观察者模式) IOS ...

  10. luoguP1164 小A点菜(背包问题)

    题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:“随便点”. 题目描述 不过uim由于买了一些辅(e ...