AT_agc007_c.[AGC007C] Pushing Balls

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 NN 个球和 N+1N+1 个洞沿一条直线排列。球从左到右依次编号为 11 到 NN,洞从左到右依次编号为 11 到 N+1N+1。第 ii 个球被放置在第 ii 个洞和第 i+1i+1 个洞之间。将相邻的洞和球之间的距离从左到右依次记为数列 did_i(1≤i≤2N1 \leq i \leq 2N)。已知 d1d_1 的值和参数 xx,并且对于任意 ii(2≤i≤2N2 \leq i \leq 2N),都有 di−di−1=xd_i - d_{i-1} = x。

现在考虑将这 NN 个球依次滚动,使其掉入洞中。球经过某个洞上方时,如果该洞还没有其他球落入,则球会掉入该洞;如果该洞已经有球,则球不会掉入,继续滚动。(在本题的滚动方式下,球之间不会发生碰撞。)

每次滚动时,从尚未滚动的球中等概率随机选择一个球,并以等概率向左或向右滚动。重复 NN 次,直到所有球都被滚动。请计算所有球移动距离总和的期望值。

以下是 N=3N=3,d1=1d_1=1,x=1x=1 时的一个滚动示例:

c9264131788434ac062635a675a785e3.jpg

  1. 将第 22 个球向左滚动。球会掉入第 22 个洞,移动距离为 33。
  2. 将第 11 个球向右滚动。球会经过第 22 个洞上方,最终掉入第 33 个洞,移动距离为 99。
  3. 将第 33 个球向右滚动。球会掉入第 44 个洞,移动距离为 66。

在这个例子中,所有球移动距离的总和为 1818。

无论如何滚动,所有球最终都会掉入某个洞,最后会剩下一个空洞。

输入格式

输入为一行,包含三个整数:

NN d1d_1 xx

输出格式

输出答案,要求为小数。绝对误差或相对误差需在 10−910^{-9} 以内。

输入输出样例

  • 输入#1

    1 3 3

    输出#1

    4.500000000000000
  • 输入#2

    2 1 0

    输出#2

    2.500000000000000
  • 输入#3

    1000 100 100

    输出#3

    649620280.957660079002380

说明/提示

限制

  • 1≤N≤200, ⁣0001 \leq N \leq 200,\!000
  • 1≤d1≤1001 \leq d_1 \leq 100
  • 0≤x≤1000 \leq x \leq 100
  • 所有输入值均为整数。

样例解释 1

有 11 个球,22 个洞。球到左侧洞的距离为 33,到右侧洞的距离为 66。球可以向左或向右滚动,共 22 种方式,移动距离分别为 3, 63,\ 6。因此答案为 (3+6)/2=4.5(3+6)/2 = 4.5。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页