ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Codeforces Round #712 (Div. 2)

2021-04-04 10:34:05  阅读:215  来源: 互联网

标签:cout int rep IOS cin 712 Codeforces Div main


Codeforces Round #712 (Div. 2)

A - Déjà Vu

找到个位置对称位置 != 'a' 即可, 找不到且全串不为 'a', 直接放最后

int n, m, _, k, cas;
char s[N];
 
int main() {
    IOS;
    for (cin >> _; _; --_) {
        cin >> s + 1; n = strlen(s + 1);
        bool f = 1; m = n;
        rep (i, 1, n) if (s[i] ^ 'a') f = 0;
        if (f) { cout << "NO\n"; continue; }
        cout << "YES\n";
        rep (i, 1, n >> 1) if (s[n + 1 - i] ^ 'a') m = i;
        rep (i, 1, n) {
            if (m == i) cout << 'a';
            cout << s[i];
        } 
        cout << '\n';
    }
    return 0;
}

B - Flip the Bits

倒序修改每个位置, 则要保证每个位置的前缀 0, 1 为偶数即可

int c[N];
char a[N], b[N];
 
int main() {
    IOS;
    for (cin >> _; _; --_) {
        cin >> n >> a + 1 >> b + 1;
        rep (i, 1, n) c[i] = 0; bool f = 1, g = 1;
        rep (i, 1, n) c[i] += c[i - 1] + (a[i] ^ '1');
        per (i, n, 1) if (g ^ (a[i] == b[i])) {
            if ((i & 1) || c[i] != i >> 1) f = 0;
            g ^= 1; 
        }
        cout << (f ? "YES\n" : "NO\n");
    }
    return 0;
}

C - Balance the Bits

因为1相同, 0不相同, 故 0, 1数都为偶数, 且都是对于a来说, 一般是'('

故模拟即可, 当不合法时, 直接break

char s[N], a[N], b[N];
 
int main() {
    IOS;
    for (cin >> _; _; --_) {
        cin >> n >> s + 1; bool f = 1; int x = 0, y = 0, c = 0;
        rep (i, 1, n) if (s[i] == '1') ++c;
        if (c & 1) { cout << "NO\n"; continue; }
        rep (i, 1, n) {
            if (s[i] == '1') {
                if (c) a[i] = b[i] = '(', c -= 2, ++x, ++y;
                else a[i] = b[i] = ')', --x, --y;
            } else {
                if (x >= y) a[i] = ')', b[i] = '(', --x, ++y;
                else a[i] = '(', b[i] = ')', ++x, --y;
            }
            if (x < 0 || y < 0) { f = 0; break; }
        }
        if (!f) { cout << "NO\n"; continue; }
        a[n + 1] = b[n + 1] = '\0';
        cout << "YES\n" << a + 1 << '\n' << b + 1 << '\n';
    }
    return 0;
}

D - 3-Coloring

先想没有禁手, 那毫无疑问用两种数即可, 分奇偶填不就完了?

有了禁手, 多了个颜色3, 那就再把所有 奇数/偶数 格子填完之后, 要么填 2/1 , 要么填 3 即可

vector<PII> a[2];
 
int main() {
    IOS; cin >> n;
    rep (i, 1, n) rep (j, 1, n) a[i + j & 1].pb(i, j);
    rep(_, 1, n * n) {
        cin >> k;
        if (k != 2 && !a[1].empty()) cout << 2 << ' ' << a[1].back().fi << ' ' << a[1].back().se << endl, a[1].pop_back();
        else if (k != 1 && !a[0].empty()) cout << 1 << ' ' << a[0].back().fi << ' ' << a[0].back().se << endl, a[0].pop_back();
        else if (!a[1].empty()) cout << 3 << ' ' << a[1].back().fi << ' ' << a[1].back().se << endl, a[1].pop_back();
        else cout << 3 << ' ' << a[0].back().fi << ' ' << a[0].back().se << endl, a[0].pop_back();
    }
    return 0;
}

E - Travelling Salesman Problem

F - Flip the Cards

标签:cout,int,rep,IOS,cin,712,Codeforces,Div,main
来源: https://www.cnblogs.com/2aptx4869/p/14615677.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有