• Educational Codeforces Round 90 (Rated for Div. 2)


    tm小学期和物理实验终于结束了, 这场是现打的, 不行了, 除了A, 都要wa一边, 不是ll就是特判, E的表sb的跑1e18没跑出来

    A

    氵题, 看题意写

    #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)
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    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 >> _; _; --_) {
            int a, b, c; cin >> a >> b >> c;
            if (a >= c) cout << -1 << ' ';
            else cout << 1 << ' ';
     
            if ((ll)a * b > c) cout << b << '
    ';
            else cout << -1 << '
    ';
        }
        return 0;
    }
    

    B

    没啥博弈, 就是查能操作几次就行

    wa每次反转在没清零

    #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)
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 1e5 + 5;
     
    int n, m, _, k;
    char s[105];
     
    int main() {
        ios::sync_with_stdio(0); cin.tie(0);
        for (cin >> _; _; --_) {
            cin >> s + 1;
            int c = 0, a = 0, b = 0;
     
            for (int i = 1; s[i]; ++i) {
                if (s[i] == '0') ++a;
                else ++b;
     
                if (s[i] == s[i + 1]) continue;
     
                if (b >= a) {
                    c += a; b -= a; a = 0;
                } else {
                    c += b; a -= b; b = 0;
                }
            }
     
            if (c & 1) cout << "DA
    ";
            else cout << "NET
    ";
        }
        return 0;
    }
    

    C

    模拟找出等差序列, 最后算上整个长度

    wa在爆int

    #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)
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 1e6 + 5;
     
    int n, m, _, k;
    char s[N];
     
    int main() {
        ios::sync_with_stdio(0); cin.tie(0);
        for (cin >> _; _; --_) {
            cin >> s + 1;
            ll c = 0, a = 0, len = 1, w = 0, ans = 0, b = 0;
     
            for (ll& i = len; s[i]; ++i) {
                if (s[i] == '-') ++c;
                else --c;
     
                if (a < c) a = c, ans;
            }
     
            c = 0;
            for (ll i = 1; s[i]; ++i) {
                if (s[i] == '-') ++c;
                else --c;
     
                if (b < c) ans += (a - b + 1) * (i - w), b = c, w = i;
            }
     
            cout << ans + (len - w - 1) << '
    ';
        }
        return 0;
    }
    
    

    D

    每两个数做差, 求最大和序列

    wa在第二次做差是奇偶做差, 存在要补最后一位的情况(忘了)

    #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)
    using namespace std;
    typedef long long ll;
    typedef pair<int, int> PII;
    typedef vector<int> VI;
    typedef double db;
     
    const int N = 2e5 + 5;
     
    int n, m, _, k;
    ll a[N], b[N << 1];
     
    ll work(ll b[], int n, int k) {
        rep (i, 0, n - 1) {
            a[i] = 0;
            if (i & 1) a[i >> 1] += b[i] * k;
            else a[i >> 1] -= b[i] * k;
        }
     
        n = (n + 1) >> 1; 
     
        ll res = 0, cur = 0, l, r, rl = 0;
        rep (i, 0, n - 1) {
            cur += a[i];
            if (cur > res) {
                r = i; l = rl;
                res = cur;
            }
     
           if (cur < 0) cur = 0, rl = i + 1;
        }
     
        return res;
    }
     
    int main() {
        ios::sync_with_stdio(0); cin.tie(0);
        for (cin >> _; _; --_) {
            cin >> n;
     
            ll ans = 0;
     
            rep (i, 1, n) {
                cin >> b[i];
                if (i & 1) ans += b[i];
            }
     
            ll a1 = work(b + 1, n, 1); b[n + 1] = 1e9;
            ll a2 = work(b + 2, n - (n & 1), -1);
            cout << ans + max(a1, a2) << '
    ';
        }
        return 0;
    }
    

    E

    0特判, 其他打标到1e9

    int main() {  
        //freopen("data.out", "w", stdout); 
        for (int n = 1; n <= 150; ++n) {
            for (int k = 1; k <= 9; ++k) {
                bool flag = 0;
                for (ll j = 0; j <= 1e9; ++j) {
                    int c = 0;
                    for (int t = 1; t <= k && c <= n; ++t) c += f(j + t);
                    if (c == n) { printf("%d, ", j); flag = 1; break;}
                }
                if (flag == 0) printf("-1, ");   
            }
            puts("");
        }
        return 0;
    }
    

    只要能跑出来表就过了

  • 相关阅读:
    谷粒商城所学知识点整理总结
    谷粒商城项目介绍
    JVM 中的垃圾回收
    对象的创建和分配
    JVM 中的异常
    JVM 中的StringTable
    一个 java 文件的执行过程详解
    复制表的方法
    从 Vue parseHTML 来学习正则表达式
    Visual Studio 2022 预览版下载来了(x64位)
  • 原文地址:https://www.cnblogs.com/2aptx4869/p/13194094.html
Copyright © 2020-2023  润新知