VijosP1934属于她的幸福题解

- 题目来源

https://vijos.org/tests/54baa38517f3ca7b1f7ee2bb

  • 描述
    曾几时,和木姑娘一起在独墅湖边的漫步,就成为了一个令我无限向往的梦。
    现在,这也只能永远只是梦了。木姑娘已经找到了属于她自己的幸福。
    夜晚的独墅湖边很凉,沿岸的n盏路灯将湖水圈在了光影之中。
    路灯被编号为0到n-1,围成一圈,0号路灯与n-1号路灯相邻。
    我独自坐在第0盏路灯下,却看到第x盏路灯下倚靠着的女孩。
    我想要过去找她,但是夜晚让我迷失了方向。
    每一分钟,我总会随机地走向相邻的某一柱路灯,究竟要多久才能走过去?究竟那女孩是不是木姑娘,还是我的幻境。

  • 格式
    输入格式
    第一行给定整数T( 30),表示数据组数。
    之后T行,每行给出2个整数n和x( 0x<n1000
    输出格式
    对于每一组数据,输出从0走到x期望情况下所需多少分钟,四舍五入保留到小数点后第四位。

  • 样例输入
    3
    3 2
    5 4
    10 5

  • 样例输出
    2.0000
    4.0000
    25.0000

  • 限制
    对于30%的数据,n 10;
    对于100%的数据,n 1000;

  • 题解
    本题与数学期望有关。
    我们定义 E(ξ) 表示与终点距离为 ξ 的点走到终点所需步数的期望值,那么显然有 E(0)=0
    对任意的 ξ ,考虑 ξ+1 ξ1 ,不难发现从 ξ 走到 ξ+1 或者 ξ1 其中一个的概率均为0.5,走到这两个点中任意一个所需步数期望为1,那么 E(ξ) 可由 E(ξ+1) E(ξ1) 确定。
    实际上,

    ξ=(ξ+1)+(ξ1)2
    从而
    E(ξ)=E(ξ+1)+E(ξ1)2+1

    代入 E(0)=0 ,有 E(1)=E(2)2+1 ,即 E(2)=2E(1)21 ,然后可计算得 E(3)=3E(1)32 E(4)=4E(1)43,
    最终, E(ξ)=ξE(1)ξ(ξ1)
    又因为原图呈环状,所以 E(ξ)=E(nξ) ξ=1 代入上式,有 E(ξ)=ξ(nξ) ,计算该式的时间复杂度为 O(1) ,问题解决。

  • Code

#include <cstdio>
#include <algorithm>
using namespace std;
int T, n, x;
int main()
{
    scanf("%d", &T);
    while(T--)
    {
        scanf("%d%d", &n, &x);
        printf("%d.0000\n", x * (n - x));
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值