CodeForces #553 E&F

E. Number of Components

解法:

  1. dp[i]dp[i] 維護從節點11ii爲止的f(l,r)\sum\sum f(l,r)值。
  2. 那麼有dpdp轉移方程:
    dp[i]={dp[i1]+(val[i]val[i1])(nval[i]+1)if val[i]>val[i1]dp[i1]+(val[i1]val[i])val[i]if val[i]<=val[i1] dp[i] = \begin{cases} dp[i-1] + (val[i] - val[i-1]) * (n - val[i] + 1) & \text{if $val[i] > val[i-1]$} \\ dp[i-1] + (val[i-1] - val[i]) * val[i] & \text{if $val[i] <= val[i-1]$} \\ \end{cases}

複雜度:O(n)O(n)

F. Sonya and Informatics

解法:

  1. 假設有zerozero00oneone11
  2. 維護dp[i][j]dp[i][j]jj步後前zerozero位有ii位是00的交換方法。
  3. 轉移方程:
    dp[i][j]=dp[i1][j]i(one(zeroi))+dp[i+1][j](zeroi)(zeroi)+dp[i][j]((zero1)zero/2+(one1)one/2+i(zeroi)+(zeroi)(one(zeroi))) dp[i][j] = dp[i-1][j] * i * (one - (zero - i)) \\ + dp[i+1][j]*(zero - i) * (zero - i) \\ + dp[i][j]*((zero-1)*zero/2+(one-1)*one/2+i*(zero-i)+(zero-i)*(one-(zero-i)))
  4. 用矩陣快速冪維護轉移方程
  5. 需要知道:PQ mod p=P/gcd(P,Q)Q/gcd(P,Q) mod p\frac{P}{Q} \ mod \ p=\frac{P/gcd(P,Q)}{Q/gcd(P,Q)}\ mod \ p所以不需要考慮約分modmod的問題

複雜度:O(n3logk)O(n^3log_{k})

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章