• CF1025G Company Acquisitions


    CF1025G Company Acquisitions [* hard]

    有一棵菊花树森林,每次操作为随机选择两棵树,然后随机将其中一棵的根作为另一棵菊花树的根节点的儿子,然后断开它和它所有儿子的边。

    求这样操作下去,最后他们变成一棵大菊花树的期望次数。

    (nle 500),每个点是根或者是 (x) 的儿子给出。

    Solution

    神仙题。

    考虑更抽象的描述这个题,给定一个序列 (a),保证 (sum a_i=n),每次操作为选择两个点,然后将其中一个变成 (a_i-1)(1),将另一个 (+1)

    接着,本题有一个有趣的事实在于,最后的终止局面一定是固定的,初始局面是给定的,我们希望存在一个描述局面的势能函数 (F(S)) 满足期望意义下,每次操作一定会使得 (F(S)) 增加 (1),假设答案就是 (F(S_{end})-F(S_{begin}))

    对于本题,我们不妨设 (f(x)) 表示当有 (x+1) 个点的时候的菊花树的势能函数,同时规定 (F(S)=sum f(a_i))

    现在考虑每次操作,对势能函数的影响,不难发现改变量即:

    [frac{1}{2}(f(a+1)+(b-1)f(0)+f(b+1)+(a-1)f(0))-f(a)-f(b)=1 ]

    如果规定 (f(0)=0),那么就有:

    [frac{f(a+1)+f(b+1)}{2}-f(a)-f(b)=1 ]

    由于需要对任意 (a,b) 成立,所以这应该是一个统一的关系,所以有 (frac{f(a+1)}{2}-f(a)=frac{1}{2})

    所以 (f(a+1)=1+2f(a))

    不难得到 (f(x)=2^x-1) 的答案。

    所以最终局面为 (f(n-1)),得到答案是 easy 的。

  • 相关阅读:
    角色总结
    cookie
    基础php链接SQL数据库
    html
    PHP 每天的总结(1)
    php的特性
    [转载]CS0234: 命名空间“System.Data”中不存在类型或命名空间名称“OracleClien...
    [转载]数据库镜像中证书过期的解决方案
    华师大陈默老师的育儿讲
    [转载]如何使用VMware Workstation 8将物理机转换为虚拟机?
  • 原文地址:https://www.cnblogs.com/Soulist/p/13841460.html
Copyright © 2020-2023  润新知