zoukankan      html  css  js  c++  java
  • Codeforces Round #655 (Div. 2)

    unrated 呜呜呜

    A

    直接全输出1完事

    #include <bits/stdc++.h>
    #define all(n) (n).begin(), (n).end()
    #define se second
    #define fi first
    #define pb push_back
    #define mp make_pair
    #define sqr(n) (n)*(n)
    #define rep(i,a,b) for(int i=a;i<=(b);++i)
    #define per(i,a,b) for(int i=a;i>=(b);--i)
    #define IO ios::sync_with_stdio(0); cin.tie(0);
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef pair<ll, ll> PLL;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 1e5 + 5;
     
    int n, m, _, k;
     
    int main() {
        ios::sync_with_stdio(0); cin.tie(0);
        for (cin >> _; _; --_) {
            cin >> n;
            rep (i, 1, n) cout << 1 << ' ';
             cout << '
    ';
        }
        return 0;
    }
    

    B

    水水水, 数论氵题

    #include <bits/stdc++.h>
    #define all(n) (n).begin(), (n).end()
    #define se second
    #define fi first
    #define pb push_back
    #define mp make_pair
    #define sqr(n) (n)*(n)
    #define rep(i,a,b) for(int i=a;i<=(b);++i)
    #define per(i,a,b) for(int i=a;i>=(b);--i)
    #define IO ios::sync_with_stdio(0); cin.tie(0);
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef pair<ll, ll> PLL;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 1e5 + 5;
     
    int n, m, _, k;
     
    int main() {
        ios::sync_with_stdio(0); cin.tie(0);
        for (cin >> _; _; --_) {
            cin >> n;
            int ans = n - 1, w = 1;
            for (int i = 2; (ll)i * i <= n; ++i)
                if (n % i == 0) {
                    int c = (n / i + 1) >> 1;
                    if (ans > (ll)c * i) w = i, ans = c * i;
                    c = (n / (n / i) + 1) >> 1;
                    if (ans > (ll)c * i) w = n / i, ans = c * i;
                }
     
            cout << w << ' '  << n - w << '
    ';
        }
        return 0;
    }
    

    C

    条件判断, 看都题意就不难

    直接拍好是 0

    中间有一段 不和首尾相连的 一段啊a[i] == i, 2

    其他的都是1

    #include <bits/stdc++.h>
    #define all(n) (n).begin(), (n).end()
    #define se second
    #define fi first
    #define pb push_back
    #define mp make_pair
    #define sqr(n) (n)*(n)
    #define rep(i,a,b) for(int i=a;i<=(b);++i)
    #define per(i,a,b) for(int i=a;i>=(b);--i)
    #define IO ios::sync_with_stdio(0); cin.tie(0);
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef pair<ll, ll> PLL;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 2e5 + 5;
     
    int n, m, _, k;
    int a[N];
     
    int main() {
        ios::sync_with_stdio(0); cin.tie(0);
        for (cin >> _; _; --_) {
            cin >> n;
            bool flag1 = 1, flag2 = 0, flag3 = 0;
            rep (i, 1, n) {
                cin >> a[i];
                if (flag1 == 1 && a[i] != i) flag1 = 0;
                else if (flag1 == 0 && a[i] == i && flag3 == 0) flag2 = 1, flag3 = 1;
                else if (flag2 == 1 && a[i] != i) flag2 = 0;
            }
     
            if (flag1 == 1) cout << 0 << '
    ';
            else if (flag1 == 0 && flag3 == 0) cout << 1 << '
    ';
            else if (flag2) cout << 1 << '
    ';
            else cout << 2 << '
    ';
        }
        return 0;
    }
    

    D

    一开始写了个假算法, 小根堆写的, wa3

    其实会发现, 对于每个数, 其相邻的两个数必定会合在一起, 只不过是合并顺序不同

    导致每个数 加的次数 不同, 直接 O(n) 延长 找就行

    #include <bits/stdc++.h>
    #define all(n) (n).begin(), (n).end()
    #define se second
    #define fi first
    #define pb push_back
    #define mp make_pair
    #define sqr(n) (n)*(n)
    #define rep(i,a,b) for(int i=a;i<=(b);++i)
    #define per(i,a,b) for(int i=a;i>=(b);--i)
    #define IO ios::sync_with_stdio(0); cin.tie(0);
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef pair<ll, ll> PLL;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 2e5 + 5;
     
    int n, m, _, k;
    bool v[N];
    int lf[N], rg[N];
    ll a[N << 1], sum[N << 1];
     
    int main() {
        ios::sync_with_stdio(0); cin.tie(0);
        cin >> n;
        rep (i, 1, n) cin >> a[i], a[i + n] = a[i];
    
        sum[1] = a[1];
        rep (i, 2, n * 2) sum[i] = sum[i - 2] + a[i];
    
        ll ans = 0; 
        rep (i, n + 1, n * 2) ans = max(ans, sum[i] - sum[i - n - 1]);
    
        cout << ans;
    
        return 0;
    }
    

    E

    应该是dp, 没想出来

  • 相关阅读:
    PNG文件格式具体解释
    opencv2对读书笔记——使用均值漂移算法查找物体
    Jackson的Json转换
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 装箱问题
    Java实现 蓝桥杯VIP 算法训练 单词接龙
    Java实现 蓝桥杯VIP 算法训练 单词接龙
    Java实现 蓝桥杯VIP 算法训练 方格取数
    Java实现 蓝桥杯VIP 算法训练 方格取数
    Java实现 蓝桥杯VIP 算法训练 单词接龙
  • 原文地址:https://www.cnblogs.com/2aptx4869/p/13287844.html
Copyright © 2011-2022 走看看