Problem Link

题意: 序列上按顺序交错有 \(n\) 个球和 \(n+1\) 个洞,即 \(hole_1,ball_1,hole_2,ball_2,\dots,ball_n,hole_{n+1}\),相邻两个位置的距离形成一个首项为 \(s\) 公差为 \(d\) 的等差数列,接下来有 \(n\) 次操作,每次操作会随机选一个球并将其随机向左推或向右推。容易发现最后每个球都会滚进一个洞中。求所有球滚动的总距离的期望。

发现 1:所谓的等差数列可以转化为每个距离都相同。

注意到对于任意一种推球的方式,考虑与它恰好对称的推球方式,可以发现,对于每个球来说,它们在两次推球的过程中走过距离的平均值为一定值 \(s+(n-1)/2*d\)!于是可以认为每相邻两个位置的距离均为此定值。

发现 2:对于各种情况,可以将每个位置的距离取期望后再进行计算。

注意到总期望距离可认为 \(\sum_{state} p_{state}d_it_i=\sum_i E[i]t_i\),其中 \(t_i\) 为每个状态中 \(i\) 被覆盖的次数,\(p_{state}\) 为状态 \(state\) 出现的概率,\(d_i\) 为该状态中空隙 \(i\) 的距离。于是这个距离可以期望化。

通过以上两个发现,可以注意到每次操作后仍然可以转化为每个空隙都有一个期望,发现除了首尾以外所有空隙期望长度均相同,且首尾两个空隙平均下来也是对的,就可以视为所有位置长度都相同,随便推推狮子即可。

时间复杂度 \(O(n)\)。

本题两个发现可谓精妙绝伦啊~~~

AGC007C Pushing Balls —— 期望的神题的更多相关文章

  1. agc007C - Pushing Balls(期望 等差数列)

    题意 题目链接 翻译来自神仙yyb Sol 又是一道神仙题.. 我开始的思路是枚举空位,但是还是不能做,GG 标算过于神仙,其中一些细节我也理解不了 题目给出的实际是一个首项为$d$,公差为$x$的等 ...

  2. AGC007C Pushing Balls

    题目链接 题意:\(N\)个坑,\(N+1\)个球,相间分布,距离为以\(d_1\)为首项,\(x\)为公差的等差数列.对于每次操作,随机选择一个未入坑的球,随机选择向左或向右,掉入第一个没有球的坑, ...

  3. 【CF913F】Strongly Connected Tournament 概率神题

    [CF913F]Strongly Connected Tournament 题意:有n个人进行如下锦标赛: 1.所有人都和所有其他的人进行一场比赛,其中标号为i的人打赢标号为j的人(i<j)的概 ...

  4. POJ 2484 A Funny Game(神题!)

    一开始看这道博弈题的时候我就用很常规的思路去分析了,首先先手取1或者2个coin后都会使剩下的coin变成线性排列的长条,然后无论双方如何操作都是把该线条分解为若干个子线条而已,即分解为若干个子游戏而 ...

  5. BUAA 724 晴天小猪的神题(RMQ线段树)

    BUAA 724 晴天小猪的神题 题意:中文题,略 题目链接:http://acm.buaa.edu.cn/problem/724/ 思路:对于询问x,y是否在同一区间,可以转换成有没有存在一个区间它 ...

  6. Bzoj 4408: [Fjoi 2016]神秘数 可持久化线段树,神题

    4408: [Fjoi 2016]神秘数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 177  Solved: 128[Submit][Status ...

  7. [agc007f] Shik and Copying String 模拟神题

    Description ​ "全"在十分愉快打工,第0天,给了他一个仅有小写字母构成的长度为N的字符串S0,在之后的第i天里,"全"的工作是将Si−1复制一份到 ...

  8. UVA.679 Dropping Balls (二叉树 思维题)

    UVA.679 Dropping Balls (二叉树 思维题) 题意分析 给出深度为D的完全二叉树,按照以下规则,求第I个小球下落在那个叶子节点. 1. 默认所有节点的开关均处于关闭状态. 2. 若 ...

  9. AtCoder 神题汇总

    记录平时打 AtCoder 比赛时遇到的一些神题. Tenka1 Programmer Contest 2019 D Three Colors 题目大意 有 $n$ 个正整数 $a_1, a_2,\d ...

随机推荐

  1. C# 数组 深拷贝 和 数组传参

    前言 C#中引用类型无法使用const,因此传参的时候使用引用类型,一定要注意是否会改变其值.下面介绍几种 数组的 深拷贝方法. 前提 下面的测试代码有一些前提, sw为Stopwatch nForT ...

  2. 排序算法整理C++(初赛)

    排序算法整理 常见考点 将一个乱掉的字符串排回有序(以交换为基本操作)的最少操作,就是冒泡排序. 排序算法的稳定性 排序算法的时间复杂度 排序算法的稳定性 稳定性是指排序前两个元素a1 = a2,a1 ...

  3. 关于MicroPython mpremote工具 的一些用例,闲聊

    关于MicroPython mpremote工具 的一些用例,闲聊 我尝试了很多不同的第三方micropython工具,有些是Windows应用程序,有些是VScode插件. 但是当我尝试过Micro ...

  4. KingbaseES V8R6C5集群部署启动securecmdd服务配置案例

    案例说明: 对于KingbaseES V8R6C5版本在部集群时,需要建立kingbase.root用户在节点间的ssh互信,如果在生产环境禁用root用户ssh登录,则通过ssh部署会失败:在图形化 ...

  5. React Native 入门 调试项目

    不管时用哪种语言,哪种框架,调试永远都是一个避不开的话题 为我们提供了远程调试的功能,而这个功能需要Chrome浏览器的配合. 1. 首先浏览器一定要安装好React Developer Tool 插 ...

  6. mysql_添加修改字段总结

    Mysql 添加字段 例子 ALTER TABLE tt_transfer_container_pick_config ADD COLUMN container_pick_station VARCHA ...

  7. dp-位移模型(数字三角形演变)

    由数字三角形问题演变而来下面的题: https://www.cnblogs.com/sxq-study/p/12303589.html 一:规定位移方向 题目: Hello Kitty想摘点花生送给她 ...

  8. 《Java基础——break与continue用法详解》

    Java基础--break与continue用法详解       1. break语句: 规则: 1. 仅用于循环语句和switch语句当中,用于跳出循环. 2. 当只有一层循环时,则直接跳出循环,不 ...

  9. 【java8新特性】02:常见的函数式接口

    Jdk8提供的函数式接口都在java.util.function包下,Jdk8的函数式类型的接口都有@FunctionInterface注解所标注,但实际上即使没有该注解标注的有且只有一个抽象方法的接 ...

  10. Django 测试脚本

    一.测试脚本 Django 在创建项目时自动在应用下创建了tests.py,这个py文件可以作为测试文件:也可以在应用下手动创建一个py测试文件. 无论哪种方式,都需要提前书写以下代码. from d ...