Codeforces1609 E. William The Oblivious(带修改的dp转移:线段树维护矩阵乘法,矩阵乘法运算符重载,cf2400)

题意:

在这里插入图片描述

解法:
如果没有修改操作, 容易想到dp维护每个前缀不出现的最小操作次数.
带修改操作的dp,容易想到线段树维护矩阵乘法.

矩阵乘法性质:
ans[i][j]=op1(ans[i][j],op2(a[i][k],b[k][j]))
这里的op1和op2可以自己定义
经典的矩阵乘法op1为加法,op2为乘法

令d[i][0/1/2]为不存在前缀a,ab,abc的最小操作次数
转移方程:
  d[i][0]=d[i-1][0]+(s[i]=='a')
  d[i][1]=min(d[i-1][0], d[i-1][1]+(s[i]=='b'))
  d[i][2]=min(d[i-1][0], d[i-1][1], d[i-1][2]+(s[i]=='c'))

令op1为min, op2为+
以矩阵形式描述转移方程:
  原矩阵x为:
    [d[i-1][0]]
    [d[i-1][1]]
    [d[i-1][2]]
  系数矩阵A为:
    [s[i]=='a']   [inf]         [inf]
    [0]           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值