zoukankan      html  css  js  c++  java
  • CodeForces Round #545 Div.2

    A. Sushi for Two

    代码:

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

    B. Circus

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    const int maxn = 1e5 + 10;
    int N;
    string s, t;
    int A, B ,C, D;
    int a, b, c, d;
    
    int main() {
        scanf("%d", &N);
        cin >> s >> t;
        for(int i = 0; i < N; i ++) {
            if(s[i] == '0') {
                if(t[i] == '0') A ++;
                else B ++;
            } else {
                if(t[i] == '0') C ++;
                else D ++;
            }
        }
    
        bool flag = false;
        for(a = 0; a <= A && a <= N / 2; a ++) {
            int t1 = a + B + D - N / 2;
            if(t1 >= 0 && t1 <= N / 2 && t1 <= D) {
                d = t1;
    
               for(b = 0; b <= B && b <= N / 2; b ++) {
                    int t2 = N / 2 - a - b - d;
                    if(t2 >= 0 && t2 <= C && t2 <= N / 2) {
                        c = t2;
                        flag = true;
                        break;
                    }
               }
               if(flag) break;
            }
        }
    
        if(flag) {
            vector<int> ans;
            for(int i = 0; i < N; i ++) {
                if(s[i] == '0') {
                    if(a && t[i] == '0') {
                        ans.push_back(i + 1);
                        a --;
                    } else if(b && t[i] == '1') {
                        ans.push_back(i + 1);
                        b --;
                    }
                } else {
                    if(c && t[i] == '0') {
                        ans.push_back(i + 1);
                        c --;
                    } else if(d && t[i] == '1') {
                        ans.push_back(i + 1);
                        d --;
                    }
                }
            }
    
            for(int i = 0; i < ans.size(); i ++)
                printf("%d%s", ans[i], i != ans.size() - 1 ? " " : "
    ");
    
        } else printf("-1
    ");
    
        return 0;
    }
    View Code

    D. Camp Schedule

    D 很简单的 KMP 求出来 nx[t.length()] 然后求出来最小循环节 先把最小循环节前面的部分输出然后输出最小循环节最后把剩下的输出 我是。。真滴不想写了

  • 相关阅读:
    MySQL全文索引应用简明教程
    web前端的春天 or 噩梦
    [DeviceOne开发]-手势动画示例分享
    [DeviceOne开发]-土地销售项目源码分享
    [DeviceOne开发]-do_LinearLayout组件使用技巧
    2016年我们重新思考移动互联网创业的风险, 微信还是APP?
    APP技术演化的路
    ReactNative&weex&DeviceOne对比
    what's deviceone
    APP开放源码第一弹《纳豆》
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10747139.html
Copyright © 2011-2022 走看看