Edu 179 - 赛时ABCD 赛后 E

A

void kdog(int test) {
    int x; cin >> x;
    cout << 2 * (((int)log2(x)) + 1) + 1 << "\n";
} 

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;
    T = 1;
    cin >> T;
    init();
    for (int test = 1; test <= T; test++) {
        kdog(test);
    }
    return 0;
}

B

int f[11];
void init() {
    Yout = "YES", Nout = "NO";
    f[1] = 1;
    f[2] = 2;
    for (int i = 3; i <= 10; i++) f[i] = f[i - 1] + f[i - 2];
}

void kdog(int test) {
    int n, m; cin >> n >> m;
    vi res(m);
    for (int i = 0; i < m; i++) {
        int a, b, c; cin >> a >> b >> c;
        if (a >= f[n] && b >= f[n] && c >= f[n] + f[n - 1]) res[i] = 1;
        if (max(a, b) >= f[n] + f[n - 1] && min(a, b) >= f[n] && c >= f[n]) res[i] = 1;

    }
    for (int i = 0; i < m; i++) {
        cout << res[i];
    }
    cout << "\n";
} 

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;
    T = 1;
    cin >> T;
    init();
    for (int test = 1; test <= T; test++) {
        kdog(test);
    }
    return 0;
}

C

void kdog(int test) {
    int n; cin >> n;
    vi a(n); cin >> a;
    vi l(n), r(n);
    l[0] = 0; r[n - 1] = n - 1;
    for (int i = 1; i < n; i++) {
        l[i] = l[i - 1];
        if (a[i] != a[i - 1]) l[i] = i;
    }
    for (int i = n - 2; i >= 0; i--) {
        r[i] = r[i + 1];
        if (a[i] != a[i + 1]) r[i] = i;
    }
    int res = inf;
    for (int i = 0; i < n; i++) {
        int v = l[i] * a[i] + (n - r[i] - 1) * a[i];
        chmin(res, v);
    }
    cout << res << "\n";
} 

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;
    T = 1;
    cin >> T;
    init();
    for (int test = 1; test <= T; test++) {
        kdog(test);
    }
    return 0;
}

D

void kdog(int test) {
    int n, m; cin >> n >> m;
    vi a(m); cin >> a;
    sort(all(a));
    vi d(n), u(n);
    for (int i = 0; i < n; i++) d[i] = a[i];
    for (int i = 0; i < n; i++) u[i] = a[m - i - 1];

    vector<vi> res(n + 10, vi(10));
    for (int i = 0, k = 0; i <= n; i += 2, k++) {
        for (int j = 0; j < 8; j += 2) {
            res[i][j] = res[i + 1][j + 1] = u[k];
            res[i + 1][j] = res[i][j + 1] = d[k];
        }
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < 6; j++) {
            cout << res[i][j] << " ";
        }
        cout << "\n";
    }
} 

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;
    T = 1;
    cin >> T;
    init();
    for (int test = 1; test <= T; test++) {
        kdog(test);
    }
    return 0;
}

E

void kdog(int test) {
    int n, m; cin >> n >> m;
    string s; cin >> s;
    vector<vector<set<int>>> pos(3, vector<set<int>>(3));
    for (int i = 0; i < m; i++) {
        char a, b; cin >> a >> b;
        pos[a - 'a'][b - 'a'].insert(i);
    }
    for (int i = 0; i < n; i++) {
        if (s[i] == 'a') continue;
        int x = s[i] - 'a';
        if (x == 1) {
            if (!pos[1][0].empty()) {
                pos[1][0].erase(pos[1][0].begin());
                s[i] = 'a';
                continue;
            }
            if (!pos[1][2].empty()) {
                int z = *pos[1][2].begin();
                auto it = pos[2][0].lower_bound(z);
                if (it != pos[2][0].end()) {
                    s[i] = 'a';
                    pos[2][0].erase(it);
                    pos[1][2].erase(z);
                    continue;
                }
            }
        }
        if (x == 2) {
            if (!pos[2][0].empty()) {
                pos[2][0].erase(pos[2][0].begin());
                s[i] = 'a';
                continue;
            }
            if (!pos[2][1].empty()) {
                int z = *pos[2][1].begin();
                auto it = pos[1][0].lower_bound(z);
                if (it != pos[1][0].end()) {
                    s[i] = 'a';
                    pos[2][1].erase(z);
                    pos[1][0].erase(it);
                    continue;
                }
                s[i] = 'b';
                pos[2][1].erase(z);
            }
        }
    }
    cout << s << "\n";
} 

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;
    T = 1;
    cin >> T;
    init();
    for (int test = 1; test <= T; test++) {
        kdog(test);
    }
    return 0;
}
posted @ 2025-06-08 16:21  k(d)o(g)  阅读(29)  评论(0)    收藏  举报