zoukankan      html  css  js  c++  java
  • Codeforces Round #640 (Div. 4)

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

    A - Sum of Round Numbers

    题意

    将一个十进制数的每一个非零位分离出来。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    
    void solve() {
        string s; cin >> s;
        int n = s.size();
        vector<string> ans;
        for (int i = n - 1; i >= 0; i--) {
            if (s[i] != '0') {
                ans.push_back(s[i] + string(n - 1 - i, '0'));
            }
        }
        cout << ans.size() << "
    ";
        for (auto i : ans) cout << i << ' ';
        cout << "
    ";
    }
    
    int main() {
        int t; cin >> t;
        while (t--) solve();
    }

    B - Same Parity Summands

    题意

    将整数 n 分解为 k 个奇偶性相同的数。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    
    void solve() {
        int n, k; cin >> n >> k;
        int n1 = n - (k - 1), n2 = n - (k - 1) * 2;
        if (n1 > 0 and n1 % 2 == 1) {
            cout << "YES
    ";
            for (int i = 0; i < k - 1; i++) cout << "1 ";
            cout << n1 << "
    ";
        } else if (n2 > 0 and n2 % 2 == 0) {
            cout << "YES
    ";
            for (int i = 0; i < k - 1; i++) cout << "2 ";
            cout << n2 << "
    ";
        } else {
            cout << "NO" << "
    ";
        }
    }
    
    int main() {
        int t; cin >> t;
        while (t--) solve();
    }

    C - K-th Not Divisible by n

    题意

    输出第 k 个不能被 n 整除的数。

    题解

    两个 n 之间有 n - 1 个不能被 n 整除的数,找出 k 中有多少个完整的 n - 1 区间,再对 n - 1 取余即可。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    
    void solve() {
        long long n, k; cin >> n >> k;
        if (k % (n - 1) == 0)
            cout << k / (n - 1) * n - 1 << "
    ";
        else
            cout << k / (n - 1) * n + k % (n - 1) << "
    ";
    }
    
    int main() {
        int t; cin >> t;
        while (t--) solve();
    }

    D - Alice, Bob and Candies

    题意

    n 堆糖果排成一排,Alice 只能从左边取,Bob 只能从右边取,每次一人取得的糖果数需多于另一人上一次取得的糖果数,问所有糖果取完时二人共取了多少次,以及各自取得的糖果个数。

    题解

    模拟即可。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    
    void solve() {
        int n; cin >> n;
        int a[n] = {}; for (auto &i : a) cin >> i;
        int l = 0, r = n - 1;
        int ans_l = 0, ans_r = 0;
        int pre_l = 0, pre_r = 0;
        int i;
        for (i = 0; l <= r; i++) {
            int sum = 0;
            if (i % 2 == 0) {
                while (l <= r and sum <= pre_r) {
                    sum += a[l];
                    ++l;
                }
                ans_l += sum;
                pre_l = sum;
            } else {
                while (r >= l and sum <= pre_l) {
                    sum += a[r];
                    --r;
                }
                ans_r += sum;
                pre_r = sum;
            }
        }
        cout << i << ' ' << ans_l << ' ' << ans_r << "
    ";
    }
    
    int main() {
        int t; cin >> t;
        while (t--) solve();
    }

    E - Special Elements

    题意

    统计数组 a 中有多少元素可以被连续子数组加和求得。

    题解

    数据范围较小,$O_{(n^2)}$ 枚举即可。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    
    const int M = 8100;
    int n, a[M], cnt[M];
    
    void solve() {
        fill(cnt, cnt + M, 0);
        cin >> n;
        for (int i = 0; i < n; i++) {
            cin >> a[i], ++cnt[a[i]];
        }
        int ans = 0;
        for (int i = 0; i < n; i++) {
            int sum = a[i];
            for (int j = i + 1; j < n; j++) {
                sum += a[j];
                if (sum < M and cnt[sum]) {
                    ans += cnt[sum];
                    cnt[sum] = 0;
                }
            }
        }
        cout << ans << "
    ";
    }
    
    int main() {
        int t; cin >> t;
        while (t--) solve();
    }

    F - Binary String Reconstruction

    题意

    构造一个 01 串,要求:

    • 00 的个数为 n0 个
    • 01 的个数为 n1 个
    • 11 的个数为 n2 个

    题解

    依次构造 11,10,00 即可。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    
    void solve() {
        int n0, n1, n2; cin >> n0 >> n1 >> n2;
        vector<int> ans;
        if (n1 or n2) ans.push_back(1);
        for (int i = 0; i < n2; i++) ans.push_back(1);
        for (int i = 0; i < n1 / 2; i++) {
            ans.push_back(0);
            ans.push_back(1);
        }
        if (n1 & 1) {
            ans.push_back(0);
            for (int i = 0; i < n0; i++) ans.push_back(0);
        } else {
            if (ans.size()) {
                ans.pop_back();
                for (int i = 0; i < n0; i++) ans.push_back(0);
                ans.push_back(1);
            } else {
                for (int i = 0; i < n0 + 1; i++) ans.push_back(0);
            }
        }
        for (auto i : ans) cout << i;
        cout << "
    ";
    }
    
    int main() {
        int t; cin >> t;
        while (t--) solve();
    }

    G - Special Permutation

    题意

    构造数 n 的一个排列,使得相邻两数相差在 [2, 4] 之间。

    题解

    顺着 3 1 4 2 构造即可。

    代码

    #include <bits/stdc++.h>
    using namespace std;
    
    void solve() {
        int n; cin >> n;
        if (n <= 3) {
            cout << -1 << "
    ";
            return;
        } else {
            for (int i = n - (n % 2 == 0); i >= 5; i -= 2) cout << i << ' ';
            cout << "3 1 4 2 ";
            for (int i = 6; i <= n - (n % 2 == 1); i += 2) cout << i << ' ';
            cout << "
    ";
        }
    }
    
    int main() {
        int t; cin >> t;
        while (t--) solve();
    }
  • 相关阅读:
    Different AG groups have the exactly same group_id value if the group names are same and the ‘CLUSTER_TYPE = EXTERNAL/NONE’
    An example of polybase for Oracle
    use azure data studio to create external table for oracle
    Missing MSI and MSP files
    You may fail to backup log or restore log after TDE certification/key rotation.
    Password is required when adding a database to AG group if the database has a master key
    Use KTPASS instead of adden to configure mssql.keytab
    ardunio+舵机
    android webview 全屏100%显示图片
    glide 长方形图片显示圆角问题
  • 原文地址:https://www.cnblogs.com/Kanoon/p/12861746.html
Copyright © 2011-2022 走看看