UVA 1588 Kickdown

来源:互联网 发布:淘宝大学 战略意义 编辑:程序博客网 时间:2024/05/07 19:57

UVA - 1588

题目大意:
为了让齿轮完美切合,上齿轮和下齿轮相合,高度为3h,
齿轮突出部分以2代替,凹陷部分以1代替,输出两者能切合最小的长度.

解题思路:
由于齿轮长度随机,则以下部分不动,分为上部分相对左移和相对右移两种情况,取最小的一个.

#include<stdio.h>#include<iostream>#include<string.h>using namespace std;char a[105];char b[105];int main() {    int i, j, count;    while (scanf( "%s%s", a, b) != EOF) {        int s = 0, t = 0;        for (i = 0; i < strlen(a); i++) {            count = 1;            for (j = 0; j < strlen(b) && (i + j) < strlen(a) ; j++)                if (a[j+i] == '2' && b[j] == '2') {                    count = 0;                    break;                }            if(count) break;        }        s = max(strlen(a), strlen(b) + i);        for (i = 0; i < strlen(b); i++) {            count = 1;            for (j = 0; j < strlen(a) && (j + i) < strlen(b); j++)                if (b[j+i] == '2' && a[j] == '2') {                    count = 0;                    break;                }            if (count) break;        }        t= max(strlen(b), strlen(a) + i);        int l = min(t, s);        printf("%d\n",l);        memset(a, 0, sizeof(a));        memset(b, 0, sizeof(b));    }    return 0;}
0 0
原创粉丝点击