码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #677 (Div. 3)【ABCDE】

时间:2020-10-21 20:39:03      阅读:25      评论:0      收藏:0      [点我收藏+]

标签:ring   ++   mina   i++   tor   cts   bre   个人   include   

比赛链接:https://codeforces.com/contest/1433

A. Boring Apartments

题解

模拟即可。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        int n;
        cin >> n;
        int ans = 0;
        for (int i = 1; i <= 9; i++) {
            int num = 0;
            for (int j = 0; j < 4; j++) {
                num = num * 10 + i;
                ans += to_string(num).size();
                if (num == n) break;
            }
            if (num == n) break;
        }
        cout << ans << "\n";
    }
    return 0;
}

B. Yet Another Bookshelf

题解

每次可以选取最左或最右端的书本合并,所以答案即两两书本间的空隙个数。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        int n;
        cin >> n;
        vector<int> pos;
        for (int i = 0; i < n; i++) {
            int x;
            cin >> x;
            if (x == 1) pos.push_back(i);
        }
        int ans = 0;
        for (int i = 1; i < int(pos.size()); i++) 
            ans += pos[i] - pos[i - 1] - 1;
        cout << ans << "\n";
    }
    return 0;
}

C. Dominant Piranha

题解

如果全为一个值,那么一定无解。否则,一定有一个最大值左右有一个值小于它,找到这个最大值即可。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        int n;
        cin >> n;
        vector<int> a(n);
        int mx = 0;
        for (auto &x : a) cin >> x, mx = max(mx, x);
        if (all_of(a.begin(), a.end(), [&](int x) { return x == mx; })) {
            cout << -1 << "\n";
        } else {
            int ans = -1;
            for (int i = 0; i < n; i++) {
                if (a[i] == mx) {
                    if (i - 1 >= 0 and a[i - 1] < a[i]) {
                        ans = i;
                        break;
                    }
                    if (i + 1 < n and a[i + 1] < a[i]) {
                        ans = i;
                        break;
                    }
                }
            }
            cout << ans + 1 << "\n";
        }
    }
    return 0;
}

D. Districts Connection

题解

如果所有地区都属于一个组织,那么一定无解。
否则将第一个组织第一个地区和其他组织所有地区相连,将第一个组织其他地区和其他组织任意地区相连即可。

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while (t--) {
        int n;
        cin >> n;
        vector<int> a(n);
        for (auto &x : a) cin >> x;
        if (all_of(a.begin(), a.end(), [&](int x) { return x == a[0]; })) {
            cout << "NO" << "\n";
        } else {
            cout << "YES" << "\n";
            map<int, vector<int>> mp;
            for (int i = 0; i < n; i++) {
                mp[a[i]].push_back(i);
            }
            vector<vector<int>> v;
            for (auto [x, vec] : mp) {
                v.emplace_back(vec);
            }
            for (int i = 1; i < int(v.size()); i++) {
                for (auto j : v[i]) {
                    cout << v[0].front() + 1 << ‘ ‘ << j + 1 << "\n";
                }
            }
            for (int i = 1; i < int(v[0].size()); i++) {
                cout << v[1].front() + 1 << ‘ ‘ << v[0][i] + 1 << "\n";
            }
        }
    }
    return 0;
}

E. Two Round Dances

题解

\(n\) 个人中选出 \(\frac{n}{2}\) 个人:\(C_n^{\frac{n}{2}}\)
\(\frac{n}{2}\) 个人围成一圈:\((\frac{n}{2}-1)!\)
答案即:\(C_n^{\frac{n}{2}} \times (n-1)!\),化简得 \(\frac{2n!}{n^2}\)

代码

#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    cin >> n;
    long long fac = 1;
    for (int i = 1; i <= n; i++) fac *= i;
    cout << 2 * fac / n / n << "\n";
    return 0;
}

Codeforces Round #677 (Div. 3)【ABCDE】

标签:ring   ++   mina   i++   tor   cts   bre   个人   include   

原文地址:https://www.cnblogs.com/Kanoon/p/13850003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!