题目链接

题意:\(N\)个坑,\(N+1\)个球,相间分布,距离为以\(d_1\)为首项,\(x\)为公差的等差数列。对于每次操作,随机选择一个未入坑的球,随机选择向左或向右,掉入第一个没有球的坑,定义一次操作的价值为球移动的距离。求\(N\)次操作的期望总价值。

分析:这是一道很好的期望题

其实\(idea\)还是比较妙的。

考虑转化问题:有\(2N+1\)个物品,每次随机删去相邻两个,求距离和的期望。

然后我们发现,若干次操作后段长仍为等差数列。

这个感性认知一下吧(能感觉到的请忽略这一段),初始时对于每个长为\(d_1+kx\)的段,删去两点后该段长度为\(3d_1+3kx\),那么所有非边界的两点删去后的长度为\(3d_1, 3d_1+3x,\dots,3d_1+3(2n-1)x\),加上任意两点删去可能性相当,所以第一次操作后仍是等差数列。然后后面肯定也是了对吧。

然后我们计算每一次操作后(当前有\(2N\)个点)的首项与公差的期望。

首项有三种可能:

1、删除编号为1、2的点,首项为\(d_1+2x\)

2、删除编号为2、3的点,首项为\(3d_1+3x\)

3、其他情况首项不变为\(d_1\)

根据全期望公式得到

\(d_1^{'}=\frac{1}{2n}*(d_1+2x)+\frac{1}{2n}*(3d_1+3x)+\frac{2n-2}{2n}*d_1\)

​ \(=\frac{(2n+2)d_1+5x}{2n}\)

公差有两种可能:

1、该段长不变为\(x\)

2、该段被取走为\(3x\)

\(x^{'}=\frac{(n+2)x}{2n}\)

每次计算答案即可

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; int main()
{
double n, a, x, ans=0.0;
cin >> n >> a >> x;
for (; n; n--)
{
ans+=a+(2*n-1)/2*x;
a=((2*n+2)*a+5*x)/(2*n);
x=(n+2)*x/n;
}
printf("%.10f\n",ans);
return 0;
}

AGC007C Pushing Balls的更多相关文章

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

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

  2. AGC007C Pushing Balls —— 期望的神题

    Problem Link 题意: 序列上按顺序交错有 \(n\) 个球和 \(n+1\) 个洞,即 \(hole_1,ball_1,hole_2,ball_2,\dots,ball_n,hole_{n ...

  3. Agc007_C Pushing Balls

    传送门 题目大意 在一条直线上有$N$个球和$N+1$个洞,每两个球之间有一个洞,每两个洞之间有一个球,最左端和最右端都是洞,其中产生的$2N$个间隔满足从左到右是等差数列.你每次随机选择一个未被推进 ...

  4. AtCoder刷题记录

    构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...

  5. 贪心/构造/DP 杂题选做Ⅲ

    颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...

  6. AtCoder Grand Contest 007

    AtCoder Grand Contest 007 A - Shik and Stone 翻译 见洛谷 题解 傻逼玩意 #include<cstdio> int n,m,tot;char ...

  7. AtCoder Grand Contest

    一句话题解 QwQ主要是因为这篇文章写的有点长……有时候要找某一个题可能不是很好找,所以写了这个东西. 具体的题意.题解和代码可以再往下翻._(:з」∠)_ AGC 001 C:枚举中点/中边. D: ...

  8. Atcoder训练计划

    争取三天做完一套吧,太简单的就写一句话题解吧(其实也没多少会做的). 自己做出来的在前面用*标记 agc007 *A - Shik and Stone 暴力dfs即可,直接判断个数 *B - Cons ...

  9. A_G_C_007

    AGC007 A Shik and Stone 我是沙比这都能蛙一发 https://agc007.contest.atcoder.jp/submissions/7946110 B Construct ...

随机推荐

  1. ADO Connection failure

    使用ado连接,频繁报错.为何?是网络的问题吗?太灵敏了.Connection failure. 跟大文本又关系??

  2. MS SQL 流程控制语句

    Declare   myCursor   cursor   For     Select   *   from   table1         open   myCursor         Fet ...

  3. Oracle安装过程出现问题---------安装Oracle11gR2先决条件检查失败

    一.错误信息当安装到“先决条件检查” 时,提示如下图所示的错误: 二.错误原因一般情况下,由于操作系统未开启默认共享,导致Oracle无法检查环境的可用性. 三.解决方法1.在运行中(或键盘按 Win ...

  4. dom4j读取XML文件内容

    <?xml version="1.0" encoding="UTF-8"?> <RESULT> <VALUE> <NO ...

  5. eclipse中debug改变变量的值

    step1:debug断点到变量的下一行,在debug试图的右上角variables中看到该变量的值: step2:鼠标右键点击str出现下图,选择Change Value... step3:点击Ch ...

  6. tensorflow笔记 :常用函数说明

    常用函数说明,梯度.产生变量等 http://blog.csdn.net/c2a2o2/article/details/69061539

  7. pg_hba.conf、pool_hba.conf 以及 pool_passwd 三者间的关系

    pg_hba.conf.pool_hba.conf 以及 pool_passwd 三者间的关系: 1.pg_hba.conf.pool_hba.conf 以及 pool_passwd 三者关系 pg_ ...

  8. 127. Word Ladder (Tree, Queue; WFS)

    Given two words (beginWord and endWord), and a dictionary's word list, find the length of shortest t ...

  9. 13.Roman to Integer (HashTable)

    Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...

  10. Eclipse 安装PyDev开发Python及初步使用

    Eclipse 安装PyDev插件后可开发Python 参考网址:https://blog.csdn.net/wscdylzjy/article/details/44066977 具体请参考上述网址, ...