首页 > 其他 > 详细

bzoj1830 Y形项链

时间:2016-02-15 14:46:00      阅读:234      评论:0      收藏:0      [点我收藏+]

枚举每个可能的最终结果(必为某串的前缀/空串),计算操作步数。

#include<cstdio>
int l1,l2,l3,c;
int ans;
char s1[51],s2[51],s3[51],ch;
void chk(){
    for(int i=1;i<=l1;i++){
        int m1=0,m2=0;
        while(s1[m1]==s2[m1]&&m1<i)m1++;
        while(s1[m2]==s3[m2]&&m2<i)m2++;
        int v=l1+i+l2-m1*2+l3-m2*2;
        if(ans>v)ans=v;
    }
}
int main(){
    scanf("%d%s%d%s%d%s",&l1,s1,&l2,s2,&l3,s3);
    ans=l1+l2+l3;
    chk();
    c=l1;l1=l2;l2=c;
    for(int i=0;i<51;i++){
        ch=s1[i];
        s1[i]=s2[i];
        s2[i]=ch;
    }
    chk();
    c=l1;l1=l3;l3=c;
    for(int i=0;i<51;i++){
        ch=s1[i];
        s1[i]=s3[i];
        s3[i]=ch;
    }
    chk();
    printf("%d",ans);
    return 0;
}

 

bzoj1830 Y形项链

原文:http://www.cnblogs.com/ccz181078/p/5190354.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!