zoukankan      html  css  js  c++  java
  • 二分 by zzt

    #include <bits/stdc++.h>
    using namespace std;
    
    /*
     Problem description:
     There is an array A, the length of array A is N.
     You need to perform Q queries.
     Each query, you get an integer X, and you need to find the smallest integer Y in array A, meet Y > X.
     If there exist such integer, please print the value of the integer.
     Otherwise, please print "There is no number bigger than X".
     
     If you finish the above problem, please try the following problem:
     1. Find the biggest integer Y in array A, Y < X.
     2. Validate if there is a integer Y in array A, meet Y equals to X.
     
     最后写这些:(key 就是上文中每次输入的 X)
     1. 对于不下降序列 a,求最小的 i,使得 a[i] = key
     2. 对于不下降序列 a,求最大的 i,使得 a[i] = key
     3. 对于不下降序列 a,求最小的 i,使得 a[i] > key
     4. 对于不下降序列 a,求最大的 i,使得 a[i] < key
     5. 对于不上升序列 a,求最小的 i,使得 a[i] = key
     6. 对于不上升序列 a,求最大的 i,使得 a[i] = key
     7. 对于不上升序列 a,求最小的 i,使得 a[i] < key
     8. 对于不上升序列 a,求最大的 i,使得 a[i] > key
     
     */
    
    const int maxn = 1e5 + 10;
    int n, q;
    long long a[maxn];
    
    int main() {
      scanf("%d", &n);
      for(int i = 1; i <= n; i ++) {
        scanf("%lld", &a[i]);
      }
      sort(a + 1, a + 1 + n);
      
      scanf("%d", &q);
      while(q --) {
        long long x;
        scanf("%lld", &x);
        int L = 1, R = n, pos = -1;
        while(L <= R) {
          int mid = (L + R) / 2;
          if(a[mid] <= x) L = mid + 1;
          else R = mid - 1, pos = mid;
        }
        if(pos == -1) printf("There is no number bigger than %lld", x);
        else printf("%lld
    ", a[pos]);
      }
      
      return 0;
    }
    

      

  • 相关阅读:
    Charles
    HttpRunner 接口自动化测试进阶
    HttpRunner 接口自动化简单实践
    Extract
    PyCharm配置gitHub远程仓储
    Python Unittest与数据驱动
    WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)
    ARTS-S golang goroutines and channels
    ARTS-S golang goroutines and channels
    ARTS-S c语言统计程序运行时间
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/9992023.html
Copyright © 2011-2022 走看看