好难啊 传送门 :
思路假设我们已经知道 第一个子串的前 i i i位,和第二个子串的前 j j j位
那么对于我们放进去的第 j + 1 j+1 j+1个数 只有两种情况
- 放空格
- 对应第 i i i位数
因此通过线性DP 可得以下方程 f [ i ] [ j ] = m i n f [ i − 1 ] [ j ] + k , f [ i ] [ j − 1 ] + k , f [ i − 1 ] [ j − 1 ] + a b s ( ( i n t ) s 1 [ i ] − ( i n t ) s 2 [ j ] ) ; f[i][j]=min{f[i-1][j]+k,f[i][j-1]+k,f[i-1][j-1]+abs((int)s1[i]-(int)s2[j])}; f[i][j]=minf[i−1][j]+k,f[i][j−1]+k,f[i−1][j−1]+abs((int)s1[i]−(int)s2[j]);
CODEvoid solve()
{
cin>>s1>>s2;
cin>>k;
int len1 = s1.size();
int len2 = s2.size();
s1 = " "+s1;
s2 = " "+s2;
for(int i = 1 ;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?