agc007C - Pushing Balls(期望 等差数列)
2018-09-29 03:52:27来源:博客园 阅读 ()
题意
题目链接
翻译来自神仙yyb
Sol
又是一道神仙题。。
我开始的思路是枚举空位,但是还是不能做,GG
标算过于神仙,其中一些细节我也理解不了
题目给出的实际是一个首项为$d$,公差为$x$的等差数列
$sum = 2dn + \frac{2n(2n - 1)x}{2}$
此时的期望为$\frac{sum}{2n}$
考虑修改之后会有那些值发生改变
$d' = \frac{(2n - 2)d + d + 2x + 3d + 3x)}{2n}$(考虑第一个位置怎么变)
$sum' = \frac{d + (d + x) + (2n - 2)x + d + (2n - 1) x + d}{2n}$
$x' = \frac{sum -2nd}{n(2n - 1)}$
不断推下去即可
#include<bits/stdc++.h> using namespace std; long double N, d1, x, ans; int main() { cin >> N >> d1 >> x; for(int i = N; i >= 1; i--) { long double s = d1 * 2 * N + N * (2 * N - 1) * x; ans += s / 2 / N; s = s - (4 * d1 + 4 * N * x - 2 * x) / 2 / N; d1 = ((2 * N - 2) * d1 + d1 + 2 * x + 3 * d1 + 3 * x) / 2 / N; N--; x = (s - 2 * N * d1) / N / (2 * N - 1); // if(i > 990) printf("%.10lf\n", (double)x); } printf("%.15lf", (double)ans); return 0; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash