首页 > 其他 > 详细

Educational Codeforces Round 74 (Rated for Div. 2)

时间:2019-10-30 01:03:22      阅读:103      评论:0      收藏:0      [点我收藏+]

Educational Codeforces Round 74 (Rated for Div. 2)

A. Prime Subtraction

  • 思路:任何大于等于二的数都可以由二和三构成

  • AC代码


#include <algorithm>
#include <iomanip>
#include <iostream>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdio.h>
#include <string.h>
#include <string>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;

ll mult_mod(ll x, ll y, ll mod){
    return (x * y - (ll)(x / (long double)mod * y + 1e-3) * mod + mod) % mod;
}

ll pow_mod(ll a, ll b, ll p){
    ll res = 1;
    while (b){
        if (b & 1)
            res = mult_mod(res, a, p);
        a = mult_mod(a, a, p);
        b >>= 1;
    }
    return res % p;
}

ll gcd(ll a, ll b){
    return b ? gcd(b, a % b) : a;
}

int t;
ll x, y, tmp;

int main(){
#ifndef ONLINE_JUDGE
    freopen("my_in.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> t;
    while (t -- ){
        cin >> x >> y;
        tmp = x - y;
        if (tmp == 1)
            cout << "NO\n";
        else
            cout << "YES\n";
    }
    return 0;
}

B. Kill ‘Em All

  • 思路:贪心 排序后 从最大的开始搞

  • AC代码


#include <algorithm>
#include <iomanip>
#include <iostream>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdio.h>
#include <string.h>
#include <string>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;

ll mult_mod(ll x, ll y, ll mod){
    return (x * y - (ll)(x / (long double)mod * y + 1e-3) * mod + mod) % mod;
}

ll pow_mod(ll a, ll b, ll p){
    ll res = 1;
    while (b){
        if (b & 1)
            res = mult_mod(res, a, p);
        a = mult_mod(a, a, p);
        b >>= 1;
    }
    return res % p;
}

ll gcd(ll a, ll b){
    return b ? gcd(b, a % b) : a;
}

const int N = 1e5 + 10;

int q, n, r, ans;
int x[N];

int main(){
#ifndef ONLINE_JUDGE
    freopen("my_in.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> q;
    while (q -- ){
        ans = 0;
        cin >> n >> r;
        for (int i = 1; i <= n; i ++ )
            cin >> x[i];
        sort(x + 1, x + n + 1);
        for (int i = n; i >= 1; i -- ){
            if (x[i] - ans * r > 0){
                ans ++ ;
                while (i - 1 >= 1 && x[i - 1] == x[i])
                    i -- ;
            }
        }
        cout << ans << "\n";
    }
    return 0;
}

C. Standard Free2play

  • 思路:每次找某一段连续且长度为偶数时答案+1 注意最后一段特判

  • AC代码


#include <algorithm>
#include <iomanip>
#include <iostream>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdio.h>
#include <string.h>
#include <string>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;

ll mult_mod(ll x, ll y, ll mod){
    return (x * y - (ll)(x / (long double)mod * y + 1e-3) * mod + mod) % mod;
}

ll pow_mod(ll a, ll b, ll p){
    ll res = 1;
    while (b){
        if (b & 1)
            res = mult_mod(res, a, p);
        a = mult_mod(a, a, p);
        b >>= 1;
    }
    return res % p;
}

ll gcd(ll a, ll b){
    return b ? gcd(b, a % b) : a;
}

const int N = 2e5 + 10;

int q, h, n, ans, cnt;
int p[N];

int main(){
#ifndef ONLINE_JUDGE
    freopen("my_in.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> q;
    while (q -- ){
        ans = 0, cnt = 1;
        cin >> h >> n;
        for (int i = 1; i <= n; i ++ )
            cin >> p[i];
        for (int i = 2; i <= n; i ++ ){
            if (p[i - 1] - 1 == p[i])
                cnt ++ ;
            else{
                if (cnt % 2 == 0)
                    ans ++ ;
                cnt = 0;
            }
        }
        if (cnt % 2 == 0 && p[n] > 1)
            ans ++ ;
        cout << ans << "\n";
    }
    return 0;
}

D. AB-string

  • 思路:参考官方题解 做的时候很难想到 用总的减去不符合题意的即可

  • AC代码


#include <algorithm>
#include <iomanip>
#include <iostream>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdio.h>
#include <string.h>
#include <string>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;

ll mult_mod(ll x, ll y, ll mod){
    return (x * y - (ll)(x / (long double)mod * y + 1e-3) * mod + mod) % mod;
}

ll pow_mod(ll a, ll b, ll p){
    ll res = 1;
    while (b){
        if (b & 1)
            res = mult_mod(res, a, p);
        a = mult_mod(a, a, p);
        b >>= 1;
    }
    return res % p;
}

ll gcd(ll a, ll b){
    return b ? gcd(b, a % b) : a;
}

const int N = 3e5 + 10;

ll n, tot, ans;
ll a[N];
string s;

int main(){
#ifndef ONLINE_JUDGE
    freopen("my_in.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> n >> s;
    for (int i = 0; i < n; i ++ ){
        if (s[i] != s[i - 1])
            a[ ++ tot ] = 1;
        else
            a[tot] ++ ;
    }
    ans = n * (n - 1) / 2 - 2 * n + a[1] + a[tot] + tot - 1;
    cout << ans << "\n";
    return 0;
}

Educational Codeforces Round 74 (Rated for Div. 2)

原文:https://www.cnblogs.com/Misuchii/p/11762567.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!