AtCoder Beginner Contest 157

Posted kanoon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AtCoder Beginner Contest 157相关的知识,希望对你有一定的参考价值。

比赛链接:https://atcoder.jp/contests/abc157

A - Duplex Printing

题意

计算 $n$ 页的文档双面打印要用多少张纸。

题解

答案即 $lceil frac{n}{2} ceil$ 。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n; cin >> n;
    cout << (n + 1) / 2;
}

B - Bingo

题意

给出一个 $3 imes3$ 的方格,方格中的数互不相同,给出 $n$ 个互不相同的数,判断其中在方格中出现的数是否位于方格的同一行、或同一列、或同一对角线中。

题解

模拟即可。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    map<int, pair<int, int>> mp;
    int a[3][3] = {};
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cin >> a[i][j];
            mp[a[i][j]] = {i, j};
        }
    }
    int row[3] = {};
    int col[3] = {};
    int diago[3] = {};
    int n; cin >> n;
    for (int i = 0; i < n; i++) {
        int x; cin >> x;
        if (mp.count(x)) {
            ++row[mp[x].first];
            ++col[mp[x].second];
            if (mp[x].first == mp[x].second) 
                ++diago[0];
            if (mp[x].first + mp[x].second == 2)
                ++diago[1];
        }
    }
    bool ok = false;
    for (int i = 0; i < 3; i++) {
        ok |= row[i] == 3;
        ok |= col[i] == 3;
        ok |= diago[i] == 3;
    }
    cout << (ok ? "Yes" : "No");
}

C - Guess The Number

题意

输出一个 $n$ 位长的最小数,要求每一指定位都为指定数字,除了 $0$ 以外不可以出现前导零。

题解

模拟即可。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, m; cin >> n >> m;
    bool ok = true;
    string ans(n, ‘0‘);
    bool used[n] = {};
    for (int i = 0; i < m; i++) {
        int s; cin >> s;
        char c; cin >> c;
        if (!used[s - 1]) {
            ans[s - 1] = c;
            used[s - 1] = true;
        } else if (ans[s - 1] != c) {
            ok = false;
        }
    }
    if (n > 1 and ans[0] == ‘0‘) {
        if (used[0]) ok = false;
        else ans[0] = ‘1‘;
    }
    cout << (ok ? ans : "-1");
}

D - Friend Suggestions

并查集,待填。

以上是关于AtCoder Beginner Contest 157的主要内容,如果未能解决你的问题,请参考以下文章

AtCoder Beginner Contest 234

AtCoder Beginner Contest 115 题解

AtCoder Beginner Contest 154 题解

AtCoder Beginner Contest 103

AtCoder Beginner Contest 228

AtCoder Beginner Contest 242