小红书笔试(2024)3.17

记录一下。
第三题题目大概意思:给定一个整数数组(长度<1e5,数据范围0~1e9),每次随机选择一个数调整,求第一次所有数都为偶数时数组和的期望值。

做法:搞个函数f(k,n-k)表示n个数中奇数为k个的期望调整次数,为方便起见,f(k,n-k)写为f(k)
          期望转移表达式为 f(k) = f(k-1)*k/n + f(k+1)*(n-k)/n + 1
          记录a_k = f(k) - f(k-1)
          上式转化为等比数列,即a_k = (n-k)/k * a_{k+1} + n / k
          考虑到边界为a_n = f(n) - f(n - 1) = 1,可以直接循环一遍算出所有a_k值
          若原数组奇数个数为u,则答案为(\sum_{1}^{u} a_k) + f(0), 而f(0)为0
          乘法逆元的话直接线性筛或者快速幂。 时间复杂度O(n)
全部评论
nb,我算出来到一半,光想着直接算出一个结果,没想到还需要循环一遍。。。。然后直接print 6 然后9%。。。
1 回复 分享
发布于 2024-03-17 21:17 上海
大佬nb
点赞 回复 分享
发布于 2024-03-17 20:58 北京
大佬你好,首先非常感谢你的答案,令我茅塞顿开。我想问一下这个类型的题叫什么名字?感觉不在常规题中,但是很多笔试都爱考。做这种题有没有什么模板或者思路可以快速上手?感谢感谢
点赞 回复 分享
发布于 2024-03-18 08:58 美国
请问有大佬可以讲一下这个转化为等比数列是什么意思嘛
点赞 回复 分享
发布于 2024-03-21 19:46 上海
太牛了
点赞 回复 分享
发布于 2024-03-22 21:59 浙江

相关推荐

点赞 评论 收藏
分享
评论
4
8
分享

创作者周榜

更多
牛客网
牛客企业服务