zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 74 (Rated for Div. 2)

    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
    ";
            else
                cout << "YES
    ";
        }
        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 << "
    ";
        }
        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 << "
    ";
        }
        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 << "
    ";
        return 0;
    }
    
  • 相关阅读:
    leetcode之Unique Binary Search Trees
    c++ 非常量引用产生临时对象
    redis的启动脚本
    leetcode 之 Insertion Sort List
    leetcode 之 Product of Array Except Self
    一致性hash的由来和原理
    我的vim 配置
    【原创】html页面清除浮动的几种方法
    实现本页面跳转的几种方式
    php输出语句用法总结
  • 原文地址:https://www.cnblogs.com/Misuchii/p/11762567.html
Copyright © 2011-2022 走看看