牛客等级之题N1(8.3场)题解

等级之题 N1(8.3)

https://ac.nowcoder.com/acm/contest/6766/A

基础期望练习题。

考虑设 表示第 ***作后剩余黑球期望个数。令 ,根据期望的线性性,则有:

因为每次操作的时候,有 的概率加入一个黑球,加上第 轮期望剩下 个黑球,则现在期望剩下 个黑球。

然后考虑扔掉一个球后,每个黑球都有 的概率被留下,所以期望剩下 个黑球。

得到递推式之后,我们可以得到如下两个做法:


迭代法:

注意到答案为 ,则所求即为:


组合意义法

考虑上面所述的组合意义,注意到每个球如果经历过 次操作的第 步,则最后有 的概率被留下来。

则不难得到:


部分代码:

const int mod = 1e9 + 7;

inline int fsp(int x, int k = mod - 2) {
    int s = 1;
    while(k) {
        if(k & 1) s = 1LL * s * x % mod;
        x = 1LL * x * x % mod, k >>= 1;
    } return s;
}

int main() {
    int n, m, k, a, b;
    cin >> n >> m >> k >> a >> b;
    int p = 1LL * a * fsp(b) % mod;
    int q = 1LL * (n + m) * fsp(n + m + 1) % mod;
    int pw = fsp(q, k), iv = 1LL * (pw - 1) * fsp(q - 1) % mod;
    cout << (1LL * pw * n + 1LL * p * iv % mod * q) % mod << endl;
    return 0;
}
全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
10-18 13:01
已编辑
西安理工大学 C++
小米内推大使:建议技能还是放上面吧,hr和技术面试官第一眼想看的应该是技能点和他们岗位是否匹配
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务