题目描述

设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为”abcbcd”,则字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X的扩展串,这里“□”代表空格字符。

如果A1是字符串A的扩展串,B1是字符串B的扩展串,A1与B1具有相同的长度,那么我扪定义字符串A1与B1的距离为相应位置上的字符的距离总和,而两个非空格字符的距离定义为它们的ASCII码的差的绝对值,而空格字符与其他任意字符之间的距离为已知的定值K,空格字符与空格字符的距离为0。在字符串A、B的所有扩展串中,必定存在两个等长的扩展串A1、B1,使得A1与B1之间的距离达到最小,我们将这一距离定义为字符串A、B的距离。

请你写一个程序,求出字符串A、B的距离。

输入输出格式

输入格式:
输入文件第一行为字符串A,第二行为字符串B。A、B均由小写字母组成且长度均不超过2000。第三行为一个整数K(1≤K≤100),表示空格与其他字符的距离。

输出格式:
输出文件仅一行包含一个整数,表示所求得字符串A、B的距离。

输入输出样例

输入样例#1: 复制
cmc
snmn
2
输出样例#1: 复制
10

dp[i][j]代表a串第i个字符与b串第j个字符的最小距离。
dp转移方程,dp[i][j]=min(dp[i-1][j]+k,min(dp[i][j-1]+k,dp[i-1][j-1]+abs(a[i]-b[j])))
就是代表从a串为空格,b串为空格,或都不为空格中选出最小值。

#include<bits/stdc++.h>
using namespace std;
const int maxn = 2005;
int dp[maxn][maxn],k;
char a[maxn],b[maxn];
int main() {ios::sync_with_stdio(false);cin>>a+1>>b+1>>k;int lena=strlen(a+1);int lenb=strlen(b+1);memset(dp,0x3f,sizeof(dp));for(register int i=1; i<=lena; i++) dp[i][0]=i*k;for(register int i=1; i<=lenb; i++) dp[0][i]=i*k;dp[0][0]=0;for(register int i=1; i<=lena; i++)for(register int j=1; j<=lenb; j++)dp[i][j]=min(dp[i-1][j]+k,min(dp[i][j-1]+k,dp[i-1][j-1]+abs(a[i]-b[j])));cout<<dp[lena][lenb]<<endl;return 0;
}

转载于:https://www.cnblogs.com/sdfzsyq/p/9677155.html

洛谷1279 字串距离相关推荐

  1. 洛谷P1279 字串距离 (动态规划)

    题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为"abcbcd",则字符串"abcb□cd"," ...

  2. 洛谷P1032字串变换题解--zhengjun

    题目描述 已知有两个字串A,BA,BA,B及一组字串变换的规则(至多666个规则): A1A_1A1​ −-−> B1B_1B1​ A2A_2A2​ −-−> B2B_2B2​ 规则的含义 ...

  3. 洛谷P1032 字串变换

    字符串的题目一般都很恶心,特别是当你妄图只用原生c语言的char去做的时候. string类虽然方便,但是相较于char慢很多.可是慢所带来的好处就是可以方便的完成很多操作.例如用string去实现这 ...

  4. 【DP】字串距离(luogu 1279)

    字串距离 luogu 1279 题目大意 给出两个字符串,让你加上若干空格,使其长度相同 对于第i位,如果都是字母那代价就是ASCII码的差值,如果一个是字母那就是k,如果没有一个是字母那就是0,让你 ...

  5. P1279 字串距离【动规】

    P1279 字串距离 link 思路: 设f[i][j]表示A字符串为i的前缀,B字符串为j的前缀的最小距离. 对于f[i][0](i ~ l e n A ) len_A) lenA​), f[0][ ...

  6. 洛谷-P1553-数字反转

    数字反转(升级版) - 洛谷 解题思路: 1.对于一个字符串进行操作,首先输入这个字符串,判断里面是否是.运算符或者是/运算符,因为这两种运算符操作起来要读取两个数值 2.设置一个翻转数组的chang ...

  7. P1279 字串距离 (动态规划)

    题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为"abcbcd",则字符串"abcb□cd"," ...

  8. 【算法讲27:Polya定理】BurnSide 引理 Polya定理 | 洛谷 P4980

    [算法讲27:Polya定理]洛谷 P4980 前置 引入 前置:BurnSideBurnSideBurnSide 引理 Polya 定理 回到题目 代码 注:下文证明都略,只记录重要的性质结论 前置 ...

  9. 广度优先搜索——字串变换(洛谷 P1032)

    题目选自洛谷P1032 题意已经把做法写得特别露骨了...最小步数,最多6个变换规则....广搜自不必说,不仅可以寻找解而且还能判断步数(根据广搜首解最优的性质可以得到). 用queue来进行广搜,需 ...

最新文章

  1. php把单词切割成数组,PHP – 将单词分解为数组
  2. Win32汇编笔记-消息基础
  3. 基于Matlab的标记分水岭分割算法(imreconstruct)
  4. P3396 哈希冲突 根号分治
  5. C4d酷炫立体空间质感电商海报素材,紧抓时尚潮流
  6. -e mysql_root_password 无效_43万的价格,53万的面子!宝马5系对比奔驰E级
  7. C/C++void *memset(void *s, int ch, size_t n)的关键之处
  8. 《企业IT架构转型之道》读书笔记
  9. 【Android RTMP】RTMP 数据格式 ( FLV 视频格式分析 | AVC 序列头格式解析 )
  10. python能参加奥赛吗-家长分享孩子学习NOIP信息学奥赛的经历
  11. 邮递员问题java实现_中国邮递员问题算法.PPT
  12. 幼儿抽象逻辑思维举例_语言训练幼儿逻辑思维——抽象篇
  13. Masked Autoencoders Are Scalable Vision Learners
  14. windows10下部署环境并运行Siammask中的demo全过程记录
  15. HIVE操作自查手册(全)
  16. 蓝绿黄车牌识别(附Python代码)
  17. CAD偏移尺寸出问题该如何解决?
  18. JavaSE02(类与对象)
  19. Word中题注按章节不同编号
  20. 【Unity】加载时 Newtonsoft.Json 提示 Metadata file `Newtonsoft.Json.dll` does not contain valid metadata

热门文章

  1. Rancher使用--后端流水线
  2. Mac OS 如何连接windows 文件共享
  3. 美团点评效果广告实验配置平台的设计与实现
  4. 低效能人士的七个习惯
  5. spring boot实战(第九篇)Application创建源码分析
  6. Spring Cloud构建微服务架构(六)高可用服务注册中心
  7. Javascript面向对象编程(二):构造函数的继承
  8. Go: 字符串比较的三种方法
  9. 查询oracle数据库adg的模式,Oracle11g ADG配置
  10. 计算机工程与科学电话,【计算机工程与科学杂志社】计算机工程与科学杂志社编辑部...