51nod 编辑距离问题 dp

本文介绍了一个经典的编辑距离问题,并通过动态规划方法解决两个字符串间的最小转换次数。使用三维数组dp记录状态转移过程,详细解释了状态转移方程,并提供了完整的C++实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*************************************************************************
    > File Name: 51nod.编辑距离问题.cpp
    > Author: xiaobo
    > Created Time: 2016年11月10日 星期四 21时08分59秒
 ************************************************************************/

这个题就是说两个不同的字符串经过最少次变换可以成为两个相同的字符串,然后也是初学dp,就说一下个人的理解,其实不用考虑很多,就是设f(i,j)表示S的前i位和T的前j位对齐后的最少扣分,如果最后一位相等的话,最少扣分就是f(i-1,j-1),如果不相等就是f(i-1,j-1)+1,所以类似说一下S的前i位和T的前(j – 1)位已经对齐了,这部分扣分也要最少。这种情况下最少的扣分是f(i,j-1) + 1,S的前(i-1)位已经和T的前j位对齐了,这部分扣分要最少。这种情况下最少的扣分是f(i,j-1) + 1。然后f(i,j)就是取这三个最小值了,然后存。这样理解,就是如果s是个空字符串,那么最少扣分就是j的长度,同理t也一样。这样就有了初值和判断条件。代码如下:在dp这个二维数组里面。然后这个有一个初值问题,就是f(0, j) = j,f(i, 0) = i。这样理解,就是如果s是个空字符串,那么最少扣分就是j的长度,同理t也一样。这样就有了初值和判断条件。代码如下:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int dp[1010][1010];
char a[1010],b[1010];

int same(char i,char j)
{
    if(i==j)   return 0;
    else return 1;
}

int main()
{
    int lena,lenb,i,j;
    while(scanf("%s%s",a,b)!=EOF)
    {
        lena=strlen(a);
        lenb=strlen(b);
         for(i=0;i<=lena;i++)    dp[i][0]=i;
        for(i=0;i<=lenb;i++)    dp[0][i]=i;
        dp[0][0]=0;
        for(i=1;i<=lena;i++)
        {
            for(j=1;j<=lenb;j++)
            {
                dp[i][j]=min(dp[i-1][j-1]+same(a[i-1],b[j-1]),min(dp[i-1][j]+1,dp[i][j-1]+1));
            }
        }
        printf("%d\n",dp[lena][lenb]);
    }
    return 0;
}


内容概要:本文深入探讨了软件项目配置管理在汽车开发领域的应用及其重要性,强调配置管理不仅是版本控制,更是涵盖标识、追溯、结构化等多方面的深度管控。文章通过对比机械产品和软件产品的标签管理,揭示了软件配置管理的独特挑战。配置管理构建了一个“网”状体系,确保软件产品在复杂多变的开发环境中保持稳定和有序。文中还讨论了配置管理在实际工作中的困境,如命名混乱、文档更新不及时、发布流程冗长等问题,并提出了通过结构可视化、信息同源化、痕迹自动化和基线灵活化等手段优化配置管理的具体方法。 适合人群:具备一定软件开发和项目管理经验的工程师及项目经理,尤其是从事汽车电子软件开发的相关人员。 使用场景及目标:①理解配置管理在汽车软件项目中的核心作用;②学习如何通过工具链(如Polarion、JIRA、飞书等)优化配置管理流程;③掌握结构可视化、信息同源化、痕迹自动化和基线灵活化等关键技术手段,提升项目管理水平。 其他说明:配置管理不仅是技术问题,更涉及到项目管理和团队协作。文中强调了工具链的应用和优化的重要性,但同时也指出,工具本身并不能解决所有问题,关键在于如何合理使用工具并不断优化管理流程。文章呼吁读者成为长期主义者,相信时间的力量,持续改进配置管理工作。
内容概要:本文详细介绍了针对含甲烷水合物沉积物(MHBS)的本构模型 Hydrate-CASM。该模型基于扩展的临界状态模型(CASM),引入了致密化机制,将水合物饱和度变化导致的孔隙体积减少等效为沉积物密度的增加。模型通过修改剪切模量、体积模量等参数来反映水合物饱和度对沉积物力学性质的影响。此外,还扩展实现了水合物相变(形成/分解)对力学性质的影响,并通过三轴试验数据验证了模型的有效性。文章进一步探讨了模型验证与传统模型的对比,展示了 Hydrate-CASM在保持简洁性的同时能够达到与传统胶结模型相当的预测精度。 适合人群:地质工程、土木工程及相关领域的研究人员和技术人员,特别是关注天然气水合物储层稳定性和力学行为的学者。 使用场景及目标:①评估天然气水合物储层资源潜力及其对压力-温度(P-T)条件变化的响应;②预测水合物分解可能引发的沉积物变形,为天然气水合物开采过程中的储层稳定性评估提供依据;③分析海底环境变化导致的水合物分解风险。 其他说明:该模型不仅提供了理论框架,还通过详细的代码实现展示了模型的具体应用,便于读者理解和复现。模型的创新点在于引入了致密化机制而非传统的胶结作用来解释 MHBS的力学行为增强现象,并通过参数系统化和模块化设计确保了模型的数值稳定性和扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值