ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Educational Codeforces Round 90 (Rated for Div. 2)

2020-06-26 11:01:45  阅读:257  来源: 互联网

标签:Educational Rated cin int ll typedef long Codeforces define


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 << '\n';
        else cout << -1 << '\n';
    }
    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\n";
        else cout << "NET\n";
    }
    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) << '\n';
    }
    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) << '\n';
    }
    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;
}

只要能跑出来表就过了

标签:Educational,Rated,cin,int,ll,typedef,long,Codeforces,define
来源: https://www.cnblogs.com/2aptx4869/p/13194094.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有