[洛谷P1279][题解]字串距离
2024-09-01 02:17:44
很明显的这题是一道dp,主要讲一下几个细节
1.初始化
我们需要初始化边界情况也就是一个字符串为空的情况
#----------# #----------#
A:aaaaaa A:□□□□□□
B:□□□□□□ or B:bbbbbb
#----------# #----------#
这时f[i][0]=i*k,f[0][j]=j*k。
另外注意都为空也就是f[0][0]=0
2.dp
这道题的转移有三种
()字符对字符
A:xxx...a
B:xxx...b
由f[i-][j-]转移得来
()字符对空格
A:xxx...a
B:xxx...□
或
A:xxx...□
B:xxx...b
由f[i-][j]或f[i][j-]转移得来
具体看代码
#include<bits/stdc++.h>
using namespace std;
string a,b; inline int d(char a,char b){
return a>b?(int)a-b:(int)b-a;
}
//f[i][j]表示A_i与B_j的距离
int f[][],k;
//1.初始化
inline void Ini(){
for(int i=;i<=a.length();i++)f[i][]=i*k;
for(int i=;i<=b.length();i++)f[][i]=i*k;
f[][]=;
} int main()
{
cin>>a>>b>>k;
Ini();
//2.dp部分
for(int i=;i<=a.length();i++){
for(int j=;j<=b.length();j++){
f[i][j]=min(min(f[i-][j],f[i][j-])+k,f[i-][j-]+d(a[i-],b[j-]));
}
} cout<<f[a.length()][b.length()]<<endl;
return ;
}
完结撒花
最新文章
- 运用css,对于下拉菜单的制作
- Oracle_RAC数据库GI的PSU升级(11.2.0.4.0到11.2.0.4.8)
- mysql bin-log 使用说明
- 转:SVN服务器搭建和使用(三)
- 最大流&;最小割 - 专题练习
- java实现附件预览(openoffice+swfTools+FlexPaper) (转载)
- Deep Learning 学习随记(六)Linear Decoder 线性解码
- 搭建自己的Git服务器
- 修复 Ubuntu 14.04 的系统设置残缺问题
- C#线程同步--线程通信
- private,protected,public和default的区别
- GCD学习
- python网络编程(十三)
- 走进JDK(六)------ArrayList
- saltstack自动化运维系列⑩SaltStack二次开发初探
- P1939【模板】矩阵加速(数列)
- Apache Nginx URL 地址 重写
- VS Code设置中文插件
- Java入门与基础算法班 - 课程大纲
- 2018-2019-2 20165209 《网络对抗技术》Exp4:恶意代码分析