Codeforces Round #370 (Div. 2)

Codeforces Round #370 (Div. 2)

E.Memory and Crow

题意

  • (N(N le 10^5))个赌场。
  • Memory在第(i)个赌场有(p_i)的概率获胜并走向(i+1)个赌场。
  • (Q(Q le 10^5))次操作,操作有两种:
  1. 1 i a b,把第(i)个赌场到胜率设为(p_i=frac{a}{b})
  2. 2 l r,求Memory从赌场(l)开始,最后获胜走到(r+1)的概率。

思路


D.Memory and Scores

题意

  • 两个人玩一个游戏,轮流进行,每个玩家每回合随机获得([-k,k])中的一个分数,其中(1 le k le 1000)
  • 已知两个人的起始分数,求进行(t(t le 100))轮游戏((2t)个回合)后,第一个玩家的分数严格大于第二个玩家的方案数,modulo (10^9+7)

思路

  • 两个玩家的得分相互独立,所以单独考虑一个玩家最后的得分即可。
  • 根据题目条件,最后的总得分最值为(pm 10^5),用(f(i,j))表示进行(i)回合后玩家得分为(j)的方案数,转移:$$f(i,j)=sum_{l=j-k}^{j+k}{f(i-1,l)}$$每次转移可以维护一个长度为(k)的区间和,时间复杂度为(O(kt^2))

C.Memory and De-Evolution

题意

  • 给一个长为(x)的正三角形,每次可以改变三角形的一条边,使得新的三条边仍构成三角形,最后变成一个长为(y)的正三角形,求最少的步数。
  • 题目保证(x gt y)

思路

  • 考虑从正三角形(y)变成正三角形(x)
  • 每次改变边长时,都尽量让最短的边变最长。
  • 假设当前的边长为(a le b le c),则令(a=min(x, c - b + 1))
原文地址:https://www.cnblogs.com/mcginn/p/5866715.html