CodeForces #553 E&F

E. Number of Components

解法:

  1. d p [ i ] dp[i] dp[i] 维护从节点 1 1 1 i i i为止的 ∑ ∑ f ( l , r ) \sum\sum f(l,r) f(l,r)值。
  2. 那么有 d p dp dp转移方程:
    d p [ i ] = { d p [ i − 1 ] + ( v a l [ i ] − v a l [ i − 1 ] ) ∗ ( n − v a l [ i ] + 1 ) if  v a l [ i ] &gt; v a l [ i − 1 ] d p [ i − 1 ] + ( v a l [ i − 1 ] − v a l [ i ] ) ∗ v a l [ i ] if  v a l [ i ] &lt; = v a l [ i − 1 ] dp[i] = \begin{cases} dp[i-1] + (val[i] - val[i-1]) * (n - val[i] + 1) &amp; \text{if $val[i] &gt; val[i-1]$} \\ dp[i-1] + (val[i-1] - val[i]) * val[i] &amp; \text{if $val[i] &lt;= val[i-1]$} \\ \end{cases} dp[i]={dp[i1]+(val[i]val[i1])(nval[i]+1)dp[i1]+(val[i1]val[i])val[i]if val[i]>val[i1]if val[i]<=val[i1]

复杂度: O ( n ) O(n) O(n)

F. Sonya and Informatics

解法:

  1. 假设有 z e r o zero zero 0 0 0 o n e one one 1 1 1
  2. 维护 d p [ i ] [ j ] dp[i][j] dp[i][j] j j j步后前 z e r o zero zero位有 i i i位是 0 0 0的交换方法。
  3. 转移方程:
    d p [ i ] [ j ] = d p [ i − 1 ] [ j ] ∗ i ∗ ( o n e − ( z e r o − i ) ) + d p [ i + 1 ] [ j ] ∗ ( z e r o − i ) ∗ ( z e r o − i ) + d p [ i ] [ j ] ∗ ( ( z e r o − 1 ) ∗ z e r o / 2 + ( o n e − 1 ) ∗ o n e / 2 + i ∗ ( z e r o − i ) + ( z e r o − i ) ∗ ( o n e − ( z e r o − i ) ) ) 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))) 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)))
  4. 用矩阵快速幂维护转移方程
  5. 需要知道: P Q   m o d   p = P / g c d ( P , Q ) Q / g c d ( P , Q )   m o d   p \frac{P}{Q} \ mod \ p=\frac{P/gcd(P,Q)}{Q/gcd(P,Q)}\ mod \ p QP mod p=Q/gcd(P,Q)P/gcd(P,Q) mod p所以不需要考虑约分 m o d mod mod的问题

复杂度: O ( n 3 l o g k ) O(n^3log_{k}) O(n3logk)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值