1 solutions

  • 0
    @ 2025-11-5 17:27:40

    C++ :

    #include<cstdio>
    #include<cstring>
    using namespace std;
    int f[2011][2011],i,j,a[2011],b[2011],la,lb,dis,temp;
    int absint(int a)
    {
    	if (a<0)
    	{
    		a=-a;
    	}
    	return a;
    }
    int main()
    {
    	char str[2011];
    	scanf("%s",&str);
    	la=strlen(str);
    	for (i=1;i<=la;i++)
    	{
    		a[i]=str[i-1];
    	}
    	scanf("%s",&str);
    	lb=strlen(str);
    	for (i=1;i<=lb;i++)
    	{
    		b[i]=str[i-1];
    	}
    	scanf("%d",&dis);
    	for (i=1;i<=la;i++)
    	{
    		f[0][i]=f[0][i-1]+dis;
    		f[i][0]=f[i-1][0]+dis;
    	}
    	for (i=la+1;i<=lb;i++)
    	{
    		f[0][i]=f[0][i-1]+dis;
    		f[i][0]=f[i-1][0]+dis;
    	}
    	for (i=1;i<=la;i++)
    	{
    		for (j=1;j<=lb;j++)
    		{
    			f[i][j]=f[i-1][j-1]+absint(a[i]-b[j]);
    			if (f[i-1][j]>f[i][j-1])
    			{
    				temp=f[i][j-1];
    			}
    			else
    			{
    				temp=f[i-1][j];
    			}
    			temp+=dis;
    			if (temp<f[i][j])
    			{
    				f[i][j]=temp;
    			}
    		}
    	}
    	printf("%d\n",f[la][lb]);
    	return 0;
    }
    
    
    • 1

    Information

    ID
    18452
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By