1 solutions

  • 0
    @ 2025-6-12 22:13:12

    枚举二进制数中是哪一位错了,求出之后再与三进制数比较,如果有且只有一位不同,那么就是这个数。

    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <cmath>
    #define R register
    
    
    #define LL long long
    
    
    using namespace std;
    
    char a[100], b[100];
    inline void minn(R int &a, const int b) { a < b ? 0 : a = b; }
    inline int ab(R int x) { return x < 0 ? -x : x; }
    
    signed main() {
        scanf("%s", a + 1);
        scanf("%s", b + 1);
        R int num = 0, tmp = 0;
        R int la = strlen(a + 1), lb = strlen(b + 1);
        for (R int i = 1; i <= la; ++i) num = num << 1 | (a[i] - '0');
        for (R int i = 1; i <= lb; ++i) tmp = tmp * 3 + b[i] - '0';
        for (R int i = 1; i <= la; ++i) {
            R int ans = num ^ (1 << (la - i));
            R int tt = ab(ans - tmp);
            while (tt % 3 == 0) tt /= 3;
            if (tt < 3)
                printf("%d", ans), exit(0);
        }
    }
    

    Information

    ID
    675
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    9
    Tags
    (None)
    # Submissions
    39
    Accepted
    4
    Uploaded By