zoukankan      html  css  js  c++  java
  • CodeForces Round #544 Div.3

    A. Middle of the Contest

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    int h1, m1, h2, m2;
    int tim1 = 0, tim2 = 0;
    
    int main() {
        scanf("%d:%d", &h1, &m1);
        scanf("%d:%d", &h2, &m2);
    
        tim1 = h1 * 60 + m1;
        tim2 = h2 * 60 + m2;
    
        tim2 -= tim1;
        tim2 /= 2;
        tim1 += tim2;
    
        int h3 = tim1 / 60, m3 = tim1 % 60;
        printf("%02d:%02d
    ", h3, m3);
    
        return 0;
    }
    View Code

    B. Preparation for International Women's Day

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 2e5 + 10;
    int N, K;
    int a[maxn], vis[110];
    
    int main() {
        scanf("%d%d", &N, &K);
        int ans = 0, cnt = 0;
        for(int i = 1; i <= N; i ++) {
            int x;
            scanf("%d", &x);
            if(x % K == 0) ans ++;
            else vis[x % K] ++;
        }
    
        ans /= 2;
    
        for(int i = 1; i <= K / 2; i ++) {
            if(i * 2 != K) ans += min(vis[i], vis[K - i]);
            else ans += (vis[i] / 2);
        }
    
        printf("%d
    ", ans * 2);
        return 0;
    }
    View Code

    C. Balanced Team

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 2e5 + 10;
    int N;
    int a[maxn];
    
    int main() {
        scanf("%d", &N);
        for(int i = 0; i < N; i ++)
            scanf("%d", &a[i]);
    
        sort(a, a + N);
    
        int maxx = 0;
        int l = 0, r = 0;
        while(l <= r && r < N && l < N) {
            while(a[r] - a[l] <= 5 && r < N) r ++;
            maxx = max(maxx, r - l);
            l ++;
        }
    
        printf("%d
    ", maxx);
    
        return 0;
    }
    View Code

    D. Zero Quantity Maximization

    不敢相信现在会因为数组开小 wa 了四发 2e5 被我开成 1e5 我都不知道我这四次在改什么 是猪吧

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 2e5 + 10;
    int N;
    int a[maxn], b[maxn];
    map<pair<int, int> , int> mp;
    
    int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
    
    int main() {
        scanf("%d", &N);
        for(int i = 0; i < N; i ++)
            scanf("%d", &a[i]);
    
        int cnt = 0, maxx = 0;
        mp.clear();
        for(int i = 0; i < N; i ++) {
            scanf("%d", &b[i]);
            if(a[i] == 0) {
                if(b[i] == 0) cnt ++;
                continue;
            }
            int t = gcd(a[i], b[i]);
            pair<int, int> p;
            p.first = a[i] / t, p.second = b[i] / t;
            if(p.first < 0) p.first *= -1, p.second *= -1;
            mp[p] ++;
            maxx = max(maxx, mp[p]);
        }
    
        printf("%d
    ", maxx + cnt);
    
        return 0;
    }
    View Code

    E. K Balanced Teams

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 5050;
    int N, K;
    int a[maxn], dp[maxn][maxn];
    
    int main() {
        scanf("%d%d", &N, &K);
        for(int i = 1; i <= N; i ++)
            scanf("%d", &a[i]);
    
        sort(a + 1, a + N + 1);
        memset(dp, 0, sizeof(dp));
        int pos = 1;
        for(int i = 1; i <= N; i ++) {
            while(a[i] - a[pos] > 5 && pos <= N) pos ++;
            for(int j = 1; j <= min(K, i); j ++) {
                dp[i][j] = max(dp[i - 1][j], dp[pos - 1][j - 1] + i - pos + 1);
            }
        }
    
        int ans = 0;
        for(int i = 1; i <= K; i ++) {
            ans = max(ans, dp[N][i]);
        }
    
        printf("%d
    ", ans);
    
        return 0;
    }
    View Code

    F1. Spanning Tree with Maximum Degree

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 2e5 + 10;
    int N, M;
    vector<int> v[maxn];
    int vis[maxn], son[maxn];
    int maxx = 0, temp;
    vector<int> u;
    vector<vector<int> > ans;
    
    void bfs(int st) {
        vis[st] = 1;
        queue<int> q;
        while(!q.empty()) q.pop();
        q.push(st);
        while(!q.empty()) {
            int tp = q.front();
            q.pop();
            for(int i = 0; i < v[tp].size(); i ++) {
                if(!vis[v[tp][i]]) {
                    vis[v[tp][i]] = 1;
                    printf("%d %d
    ", tp, v[tp][i]);
                    q.push(v[tp][i]);
                }
            }
        }
    }
    
    int main() {
        scanf("%d%d", &N, &M);
        while(M --) {
            int a, b;
            scanf("%d%d", &a, &b);
            v[a].push_back(b);
            v[b].push_back(a);
            son[a] ++, son[b] ++;
        }
    
        for(int i = 1; i <= N; i ++) {
            if(son[i] > maxx) {
                maxx = son[i];
                temp = i;
            }
        }
    
        bfs(temp);
        return 0;
    }
    View Code

     F2. Spanning Tree with One Fixed Degree

    今天也是被奶茶治愈的一天

  • 相关阅读:
    LeetCode 1356. 根据数字二进制下1的数目排序
    Ubuntu LaTeX 中文环境配置 与 VSCode LaTeX Workshop
    LeetCode 57. 插入区间
    VSCode Ubuntu下调试失败 无法打开 libc-start.c raise.c等
    LeetCode 30. 串联所有单词的子串
    日期处理函数
    Stream 和 byte[] 之间的转换
    Math.Round {实现四舍五入的小技巧}
    重写alert弹窗
    js轮播图
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10750189.html
Copyright © 2011-2022 走看看