zoukankan      html  css  js  c++  java
  • 治疗之雨

    治疗之雨

    给定 (n,m,p,k),表示你有 (m+1) 个变量,其中第一个变量的上限是 (n),下限为 (0),初始值为 (p),其余 (m) 个变量均为 (infty),不存在到达上限或者下限。

    定义一轮操作为:

    • 随机选择一个没有到达上限的数,给其 (+1),然后执行如下操作 (k) 次:
    • 随机选择一个没有到达下限的数,给其 (-1)

    问期望操作多少轮使得第 (1) 个变量变成 (0)


    显然一个状态只和第一数当前的权值相关。

    (f_i) 表示当前第一个权值为 (i),期望需要多少次走到 (n)

    那么有 (f_n=0)

    考虑 (f_i o f_j) 的概率,若 (i>j),则即本轮操作其恰好有 (i-j) 次操作命中了 (1) 的概率。

    分类讨论:

    • (i e n),那么有 (frac{1}{m+1}) 的概率命中 (1) 接下来当作 (i+1) 处理即可。
    • 后者直接作为 (i) 处理即可。

    另一边,我们计算的答案实际上是恰好命中了 (o) 次的概率:

    [inom{k}{o}(frac{1}{m+1})^o(frac{m}{m+1})^{k-o} ]

    注意到 (o) 必然是很小的,所以这一部分可以递推,我们记为 (f_o) 即可。

    然而如果是走到 (0) 就需要考虑后续不能走的情况,假设需要 (i) 次走到 (0),那么答案应为:

    [frac{1}{(m+1)^i}sum_{jge i}^{k} inom{j-1}{i-1}Big(frac{m}{m+1}Big)^{j-i} ]

    这个式子非常的不二项式定理,然后我就不会了,看了一下题解莫名奇妙那些憨憨集体说不需要考虑,我觉得非常需要考虑的,无法理解啊 TAT。

    不过如果不需要考虑的话,那么预处理 (P_{x,y}) 表示由 (x) 走到 (y) 的概率,那么得到 (f_x=sum P_{x,y}f_y+1),然后高斯消元

    (n=1500) 怎么消呢,注意到 (P_{x,y}) 实际上只关乎 (x-y),和 (x e n) 这两个条件,原式等价于:

    [egin{aligned} &f(i)=1+sum_{j=0}^{i+1}P_{i,j} f(j) \&f(i+1)=frac{f(i)-sum_{j=0}^i P_{i,j}f(j)-1}{P_{i,i+1}} end{aligned}]

    于是我们可以将所有数表示为 (k imes f(1)+b),然后注意到唯一没有被利用的方程是 (f(n)),所以我们再在 (f(n)) 处解一个方程即可。

    复杂度 (mathcal O(Tcdot n^2))

    当然,特判一下 (k=0) 输出 (-1) 以及 (m=0) 的输出 (frac{p}{k-1})

  • 相关阅读:
    java获取服务器的ip和地址
    如何产生好的词向量
    谈谈评价指标中的宏平均和微平均
    在NLP中深度学习模型何时需要树形结构?
    Windows下MetaMap工具安装
    ML 感知机(Perceptrons)
    ML 神经网络 NeuralNetworks
    NLP-特征选择
    ML 逻辑回归 Logistic Regression
    ML 线性回归Linear Regression
  • 原文地址:https://www.cnblogs.com/Soulist/p/13653731.html
Copyright © 2011-2022 走看看