zoukankan      html  css  js  c++  java
  • BZOJ1830: [AHOI2008]Y型项链 & BZOJ1789: [Ahoi2008]Necklace Y型项链

    【传送门:BZOJ1830&BZOJ1789


    简要题意:

      给你3个字符串,你每一次可以在一个字符串的末端删除一个字符或添加一个字符,你需要用尽量少的操作次数使得这3个字符串变成一样的。 


    题解:

      模拟直接搞,模拟以每个串的每个位置为最终答案,求最小值即可


    参考代码:

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<cstdlib>
    #include<cmath>
    using namespace std;
    char s1[51],s2[51],s3[51];
    int main()
    {
        int len1,len2,len3;
        scanf("%d%s",&len1,s1+1);
        scanf("%d%s",&len2,s2+1);
        scanf("%d%s",&len3,s3+1);
        int mmin=1<<31-1,ans;
        int b1=0,b2=0,b3=0;
        for(int i=1;i<=len1;i++)
        {
            ans=len1-i;
            if(b2!=0) ans+=len2-b2+1+i-b2+1;
            else if(s1[i]!=s2[i]) b2=i,ans+=len2-b2+1+i-b2+1;
            else ans+=len2-i;
            if(b3!=0) ans+=len3-b3+1+i-b3+1;
            else if(s1[i]!=s3[i]) b3=i,ans+=len3-b3+1+i-b3+1;
            else ans+=len3-i;
            mmin=min(ans,mmin);
        }
        b1=0;b2=0;b3=0;
        for(int i=1;i<=len2;i++)
        {
            ans=len2-i;
            if(b1!=0) ans+=len1-b1+1+i-b1+1;
            else if(s2[i]!=s1[i]) b1=i,ans+=len1-b1+1+i-b1+1;
            else ans+=len1-i;
            if(b3!=0) ans+=len3-b3+1+i-b3+1;
            else if(s2[i]!=s3[i]) b3=i,ans+=len3-b3+1+i-b3+1;
            else ans+=len3-i;
            mmin=min(ans,mmin);
        }
        b1=0;b2=0;b3=0;
        for(int i=1;i<=len3;i++)
        {
            ans=len3-i;
            if(b1!=0) ans+=len1-b1+1+i-b1+1;
            else if(s3[i]!=s1[i]) b1=i,ans+=len1-b1+1+i-b1+1;
            else ans+=len1-i;
            if(b2!=0) ans+=len2-b2+1+i-b2+1;
            else if(s3[i]!=s2[i]) b2=i,ans+=len2-b2+1+i-b2+1;
            else ans+=len2-i;
            mmin=min(ans,mmin);
        }
        printf("%d
    ",min(mmin,len1+len2+len3));
        return 0;
    }

     

  • 相关阅读:
    copy深浅拷贝
    def函数
    内置函数
    for / while 循环
    报告的实现
    运行用例
    集合获取依赖用例
    解决依赖关系(单层和递归两种方式)、获取依赖用例去运行
    接口测试平台开发之接口开发(用例集合)
    接口测试平台开发之接口开发(项目管理、接口管理、用例管理)
  • 原文地址:https://www.cnblogs.com/Never-mind/p/8939400.html
Copyright © 2011-2022 走看看