• ABC205


    C

    题意:给你a, b, c, 判断(a^c)(b^c)谁大(−10^9≤A,B≤10^9,1≤C≤10^9)

    方法:如果c为奇数直接判断ab大小,否则判断绝对值的大小

    #include<iostream>
    #include<vector>
    #include<cstring>
    
    using namespace std;
    
    void out(int x, int y){
        if(x > y) cout << ">";
        if(x < y) cout << "<";
        if(x == y) cout << "=";
    }
    
    signed main(){
        int a, b, c;
        cin >> a >> b >> c;
        if(c & 1) out(a, b);
        else out(abs(a), abs(b));
    }
    

    D

    题意:给你一个长为N的升序序列A,Q个询问,每次给一个k,问第k小的不包含在A中的整数,假设A为(4,5,6,8,10),如果k为3,答案就是3,因为3是不包含在A中第3小的数字

    方法:对于A(下标从1开始,另外在最开头加一个a0 = 0)中的一个元素ai,ai - i表示不包含a1~ai时,ai左侧的从1开始的数字个数,然后二分找最大的满足ai - i小于k的位置idx,答案 = (k - (a[idx] - idx) + a[idx] = k + idx)

    #include<iostream>
    using namespace std;
    
    const int N = 1e5 + 10;
    
    #define int long long
    
    int n, q;
    int a[N], idx[N];
    
    int find(int x){
        int l = 0, r = n;
        while(l < r){
            int mid = l + r + 1 >> 1;
            if(a[mid] - mid < x) l = mid;
            else r = mid - 1;
        }
        return l;
    }
    
    signed main(){
        cin >> n >> q;
        for(int i = 1; i <= n; i ++) cin >> a[i];
        
        while(q --){
            int k;
            cin >> k;
            int idx = find(k);
            cout << k + idx << endl;
        }
    }
    
  • 相关阅读:
    centos 编程环境
    git 安装 使用
    nodejs 笔记
    微信开发
    composer 使用笔记
    一:安装centos 7最小编程环境 xfce桌面
    二: 安装centos服务环境软件mysql httpd php
    我的通用程序规范及说明
    常用js代码集
    三 , lnmp 一键包安装使用
  • 原文地址:https://www.cnblogs.com/tomori/p/15492487.html
Copyright © 2020-2023  润新知