UVA1588 Kickdown

Posted i-8023-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA1588 Kickdown相关的知识,希望对你有一定的参考价值。

两个齿轮接合的最小长度,高度限制 3。
固定下方齿轮,起始点设置为 101,不断移动上方齿轮。
技术图片

const int SIZE = 100+1;
int main(int argc, const char * argv[]) {
    string bottom,top;
    int H[SIZE*3], b_btm = SIZE, b_top = 0;
    while (cin >> bottom >> top) {
        memset(H, 0, sizeof(H));
        int len_btm = bottom.size(), len_top = top.size();
        for (int i = 0; i < len_btm; ++i)
            H[i+SIZE] = bottom[i] - ‘0‘;
        int ans = len_btm + len_top;
        for (b_top = b_btm-len_top; b_top <= b_btm + len_btm; ++b_top) {
            bool flag = true;
            for (int i = 0; i < len_top; ++i) {
                if (top[i]-‘0‘ + H[b_top+i] > 3) { flag = false; break; }
            }
            if (flag) ans = min(ans, max(b_top+len_top, b_btm+len_btm) - min(b_top, b_btm));
        }
        cout <<ans<<endl;
    }
    
    
    return 0;
}

以上是关于UVA1588 Kickdown的主要内容,如果未能解决你的问题,请参考以下文章

Uva 1588.Kickdown

UVA1588 Kickdown

数组与字符串 UVa1588 Kickdown

UVa-1588 Kickdown(换低档装置)

uva1588kickdown

[算法竞赛入门经典]Kickdown ACM/ICPC NEERC 2004,UVa1587