zoukankan      html  css  js  c++  java
  • cf-goodbye2019

    传送门

    enmmmm 快速做完了abc题,d题不会,挂机半天又闲得无事又交一次c 直接掉700+名。。。。。以最后一次ac为准 我傻了 我演我自己


    A Card Game standard input/output 1 s, 256 MB Submit Add to favourites x8360

      两个人,n张牌 谁有更大的那张牌 一直出就好

    B Interesting Subarray standard input/output 2 s, 256 MB Submit Add to favourites x6019

       如存在good 子串 输出任意即可, 所以直接查找是否有 a[i]-a[i-1] >= 2 即可
    C Make Good standard input/output 2 s, 256 MB Submit Add to favourites x4722

      需要将 sum == xsum*2, 所以只需要添加两个数  一个是先把 xsum 变成0, 另一个是当前sum, 这样 sum+sum == sum*2
    D Strange Device standard input/output 1 s, 256 MB Submit Add to favourites x1784

      交互题, 不太会, 看了下 要用到 cout.flush();  作用是同步缓冲区和输出序列, 如果不用的话会出现 Idleness limit exceeded on test 1 错误,

      我们仅用前 k+1 个元素, 在 k+1 次 查询内找出m。 第 i 次询问除 a[i] 以外的其他数,则在全部 k + 1 个答案中第 m 小的数出现了 k-m+1 次, 第 m+1 小的数出现了 m 次。 因此答案中较大数出现次数就是答案

       每次查询都输出 除 i 的 1 ~ k+1 并且插入一个值, 查询结束后这些值组成一个 k+1的数组  数组最大值的出现次数即为m

    #include<bits/stdc++.h>//goodbye2019
    using namespace std;
    
    #define _for(i,a,b) for(int i = (a); i < (b); i++)
    #define _rep(i,a,b) for(int i = (a); i <= (b); i++)
    #define _per(i,a,b) for(int i = (a); i > (b); i--)
    #define ll long long
    void taskA(){
        int t; cin >> t;
        while(t--) {
            int n,k1,k2; cin >> n >> k1 >> k2;
            int m1 = 0, m2 = 0;
            _for(i,0,k1) {
                int x;cin >> x;
                m1 = max(m1, x);
            }
            _for(i,0,k2) {
                int x; cin >> x;
                m2 = max(m2, x);
            }
            cout << (m1>m2?"YES
    ":"NO
    ");
        }
        return;
    }
    void taskB(){
        int t; cin >> t;
        while(t--) {
            int n;
            cin >> n;
            vector<int> a(n);
            _for(i,0,n) cin >> a[i];
            int flag = 0, l, r;
            _for(i,1,n) {
                if(abs(a[i]-a[i-1]) >= 2){
                    flag = 1;
                    l = i, r = i+1;
                    break;
                }
            }
            cout << (flag ?"YES
    ": "NO
    ");
            if(flag) cout << l << " " << r << "
    ";
        }
        return;
    }
    void taskC(){
        int t; cin >> t;
        while(t--) {
            int n; cin >> n;
            vector<int> a(n);
            _for(i,0,n) cin >> a[i];
            ll sum = 0, xsum = 0;
            _for(i,0,n) {
                sum += a[i];
                xsum ^= a[i];
            }
            sum += xsum;
            cout << "2
    " << xsum << " " << sum << "
    ";
        }//输出2, 然后两个数是 xorsum, xorsum+sum
        return;//先添加一个数 让右边为0  再添加sum 这样就 sum+sum = sum*2
    }
    void taskD(){
        int n,k; cin >> n >> k;
        vector<int> v;
        _rep(i,1,k+1) {
            cout << "?";
            _rep(j,1,k+1) if(j != i) cout << " " << j; 
            cout << "
    ";
            int pos, val; cin >> pos >> val;
            v.push_back(val);
        }
        sort(v.rbegin(), v.rend());
        int x = v[0], m = 0;
        for(auto it:v) if(x == it) m++;
        cout << "! " << m << "
    ";
        cout.flush();
        return;
    }
    int main(){
        ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
        //taskA();
        //taskB();
        //taskC();
        //taskD();
        return 0;
    }
  • 相关阅读:
    综合:bool类型 命名空间 输入输出
    C++命名空间
    C++输入输出
    C++新特性
    C++ IDE环境
    C++简介
    3 python3 编码解码问题 upd接受数据
    2 socket UDP通信
    1 网络基础知识
    15 GIL 全局解释器锁 C语言解决 top ps
  • 原文地址:https://www.cnblogs.com/163467wyj/p/12119426.html
Copyright © 2011-2022 走看看