zoukankan      html  css  js  c++  java
  • YCOJ【查找】

    描述

      给出一个有 n 个元素的数列 a 和两个整数 k 和 s,其中数列 a 的元素是按照升序排列的。

      请你在数列中找出一个元素 x,使得的 x+k=s。

    输入输出格式

    输入

      输入第一行一个整数 n(1≤n≤10^5),表示数列中的元素个数。

      接下来一行输入 n 个空格隔开的整数,表示输入的数列 a,保证是升序排列,并且 −10^9≤ai≤10^9。

      接下来一行输入两个整数 k,s(−10^9≤k,s≤10^9)。

    输出

      如果能找到满足条件的数,输出"Yes",否者输出"No"。

    输入输出样例

     输入样例 1

    5
    1 2 3 4 5
    -1 4
    

    输出样例1

    Yes
    

    解题思路

      这道题两个一减就算出了需要找的数,再用二分查找即可。

    题解

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int a[100000+1];
     4 int x;
     5 void bsearch(int left,int right)//二分模板
     6 {
     7     if(left<=right)
     8     {
     9         int mid=(left+right)/2;
    10         if (a[mid]==x) {cout<<"Yes"<<endl;return;} 
    11         if (x<a[mid]) bsearch(left,mid-1);
    12         else bsearch(mid+1,right);
    13     } 
    14     else cout<<"No"<<endl;
    15     }
    16 int main()
    17 {
    18  int n,k,s;
    19      cin>>n;
    20     for(int i=1;i<=n;i++)
    21 {  
    22    cin>>a[i];
    23 }
    24    cin>>k>>s;
    25    x=s-k;
    26    bsearch(1,n);
    27 }
  • 相关阅读:
    kubernetes 用到的工具及组件
    kubernetes整个基础环境的准备
    docker可视化管理Portainer
    Docker Swarm的命令
    Docker网络设置及文件挂载
    Docker常见命令
    Docker 中国官方镜像加速
    Docker安装
    k8s中教你快速写一条yaml文件
    Kubernetes CoreDNS 状态是 CrashLoopBackOff 报错
  • 原文地址:https://www.cnblogs.com/hualian/p/11159356.html
Copyright © 2011-2022 走看看