1 solutions
-
0
枚举二进制数中是哪一位错了,求出之后再与三进制数比较,如果有且只有一位不同,那么就是这个数。
#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