UVA1588-换低档装置

题目:https://vjudge.net/problem/UVA-1588

分析:固定s1不动,s2从s1左边一直模拟到右边,过程中更新最小值。

#include <stdio.h>
#include <string.h>
    char s1[110],s2[110];
    int s[330];
int main(void){
    while(scanf("%s %s",s1,s2)==2){
        int l1=strlen(s1);
        int l2=strlen(s2);
        int min=l1+l2;
        for(int i=0;i<=l2+l1;i++){
            memset(s,0,sizeof(s));
        for(int j=l2;j<l2+l1;j++){
            s[j]=s1[j-l2]-'0';
        }
        for(int j=0;j<l2;j++){
            s[i+j]+=s2[j]-'0';
        }
        int r=i>l1?i+l2:l2+l1;//末尾
        int b=0;
        for(int k=i;k<r;k++){
            if(s[k]>3)b=1;
        }
        if(b==0){
        int h=i>l2?l2:i;//始端
            if(r-h<min){min=r-h;
        }
        }
        }
        printf("%d
",min);
        memset(s1,'',sizeof(s1));
        memset(s2,'',sizeof(s2));
        memset(s,0,sizeof(s));
    }
    return 0;
}
终究独木难支。
原文地址:https://www.cnblogs.com/yanying7/p/12259774.html