蓝桥杯 爬树的甲壳虫
期望dp,但是过程是手推的
期望dp一般设置 ,反推 ,这样会容易理解一些
根据甲壳虫爬上一层有概率掉回第0层,得 :
令 ,得:
则:
所以只需要预处理 就可以了
N, mod = 100010, 998244353
n, a, b, p = 0, [0] * N, [0] * N, [0] * N
def qpow(x, k = mod - 2):
res = 1
while k > 0:
if k % 2 == 1: res = res * x % mod
x = x * x % mod
k //= 2
return res
def main():
global n
n = int(input())
for i in range(1, n + 1):
a[i], b[i] = map(int, input().split())
s = [0] * N
s[0] = 1
for i in range(1, 1 + n):
p[i] = a[i] * qpow(b[i])
s[i] = s[i - 1] * (1 - p[i] + mod) % mod
sum1, sum2 = 0, 0
for i in range(1, n): sum1 = (sum1 + s[i]) % mod
for i in range(1, n + 1): sum2 = (sum2 + p[i] * s[i - 1] % mod) % mod
ans = (1 + sum1) * qpow(1 - sum2 + mod) % mod
print(ans)
if __name__ == '__main__':
main()
不过说一句,python运行效率是真慢,慢出c++ 10倍以上了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?