AGC007C Pushing Balls
题意:\(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的更多相关文章
- agc007C - Pushing Balls(期望 等差数列)
题意 题目链接 翻译来自神仙yyb Sol 又是一道神仙题.. 我开始的思路是枚举空位,但是还是不能做,GG 标算过于神仙,其中一些细节我也理解不了 题目给出的实际是一个首项为$d$,公差为$x$的等 ...
- AGC007C Pushing Balls —— 期望的神题
Problem Link 题意: 序列上按顺序交错有 \(n\) 个球和 \(n+1\) 个洞,即 \(hole_1,ball_1,hole_2,ball_2,\dots,ball_n,hole_{n ...
- Agc007_C Pushing Balls
传送门 题目大意 在一条直线上有$N$个球和$N+1$个洞,每两个球之间有一个洞,每两个洞之间有一个球,最左端和最右端都是洞,其中产生的$2N$个间隔满足从左到右是等差数列.你每次随机选择一个未被推进 ...
- AtCoder刷题记录
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...
- 贪心/构造/DP 杂题选做Ⅲ
颓!颓!颓!(bushi 前传: 贪心/构造/DP 杂题选做 贪心/构造/DP 杂题选做Ⅱ 51. CF758E Broken Tree 讲个笑话,这道题是 11.3 模拟赛的 T2,模拟赛里那道题的 ...
- AtCoder Grand Contest 007
AtCoder Grand Contest 007 A - Shik and Stone 翻译 见洛谷 题解 傻逼玩意 #include<cstdio> int n,m,tot;char ...
- AtCoder Grand Contest
一句话题解 QwQ主要是因为这篇文章写的有点长……有时候要找某一个题可能不是很好找,所以写了这个东西. 具体的题意.题解和代码可以再往下翻._(:з」∠)_ AGC 001 C:枚举中点/中边. D: ...
- Atcoder训练计划
争取三天做完一套吧,太简单的就写一句话题解吧(其实也没多少会做的). 自己做出来的在前面用*标记 agc007 *A - Shik and Stone 暴力dfs即可,直接判断个数 *B - Cons ...
- A_G_C_007
AGC007 A Shik and Stone 我是沙比这都能蛙一发 https://agc007.contest.atcoder.jp/submissions/7946110 B Construct ...
随机推荐
- vuex和vuejs
前言:在最近学习 Vue.js 的时候,看到国外一篇讲述了如何使用 Vue.js 和 Vuex 来构建一个简单笔记的单页应用的文章.感觉收获挺多,自己在它的例子的基础上进行了一些优化和自定义功能,在这 ...
- FCCMBBTN.RES
[ilink32 Error] Error: Unable to open file 'FCCMBBTN.RES' 用到了fc控件 添加路径到LibPath即可. 1st\1stClassStudio ...
- windows到ubuntu
按照xmarks同步浏览器书签. mvn, copy setting.xml 最好不要用apt-get install maven, 占用/的磁盘空间 mvn -U package -P"d ...
- //todo 的用处
在代码中添加 //todo 以后要做的事 可以暂时打上标记,以后再来处理. 光有这个没什么用,关键是IDE要支持,比如VS2017,只要按下 ctrl+w,t 就可以在输出窗口中显示出所有 todo的 ...
- open File Browser in shell
[maxosx] open /usr/include [ubuntu] 发现三个,如下: xdg-open xxxx.pdf gnome-open . nautilus . 喜欢把它alias一下 . ...
- axure学习点
动态模板内部框架动态弹出框
- java链接数据库构建sql语句的时候容易记混的地方
Connection conn = DBHelper.getconnection(); //封装连接数据库的工具类 String sql = "select * from t_test&qu ...
- Magic Potion(最大流,跑两遍网络流或者加一个中转点)
Magic Potion http://codeforces.com/gym/101981/attachments/download/7891/20182019-acmicpc-asia-nanjin ...
- 38-解决Fiddler查看Post参数中文乱码的问题
转载自:https://blog.csdn.net/JusterDu/article/details/50888617 解决Fiddler查看Post参数中文乱码的问题 2016年03月14日 18: ...
- yarn 完美替代 npm
众所周知,npm是nodejs默认的包管理工具,我们通过npm可以下载安装或者发布包,但是npm其实存在着很多小问题,比如安装速度慢.每次都要在线重新安装等,而yarn也正是为了解决npm当前存在的问 ...