神奇的迭代加深

灌水区

Register_int @ 2021-11-29 13:21:31

题目描述
吸氧前
吸氧后

#include <bits/stdc++.h>
using namespace std;
int st, p, ed = 123804765, limit; 
int a[] = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000};
bool f;
unordered_map<int, int> mp;
inline int at(int x, int i) { return x % a[i + 1] / a[i]; }
inline int swap_at(int x, int p, int i) { return x - at(x, i) * a[i] + at(x, i) * a[p]; }
void dfs(int x, int p, int d, int dir) {
    if (mp[x] + dir == 3) f = 1;
    mp[x] = dir;
    if (d == limit) return;
    if (p / 3) dfs(swap_at(x, p, p - 3), p - 3, d + 1, dir);
    if (p / 3 != 2) dfs(swap_at(x, p, p + 3), p + 3, d + 1, dir);
    if (p % 3) dfs(swap_at(x, p, p - 1), p - 1, d + 1, dir);
    if (p % 3 != 2) dfs(swap_at(x, p, p + 1), p + 1, d + 1, dir);
}
int main() {
    scanf("%d", &st);
    for (; at(st, p); p++);
    while (1) {
        dfs(st, p, 0, 1);
        if (f) return 0 * printf("%d", (limit << 1) - 1);
        dfs(ed, 4, 0, 2);
        if (f) return 0 * printf("%d", limit << 1);
        limit++;
    }
    return 0;
}

by xfrvq @ 2021-11-29 13:32:34


by Digital_Sunrise @ 2021-11-29 13:34:02


by wujingxiu @ 2021-11-29 16:11:38

@const_int 热知识:在大多数情况下,O2优化可有效加快程序运行速度,但在某些情况下,可能导致RE,WA,或如今年CSP-JT2一样,在某些代码上起到反效果,增加TLE测试点


|