Openjudge1.11.1 查找最接近的元素

摘要:
=n<=m<位/stdc++.h>//第一次被写为左-右14if(a[mid]<20}21}22if(abs(a[left]-w)&lt=abs(a[left+1]-w)){23cout<a[lef]&lt,a[left+1]&lt)n;i<=n;a[i]);i&llt;=m;&k);a[1]);

【描述】
    在一个非降序列中,查找与给定值最接近的元素。

【输入】
    第一行包含一个整数n,为非降序列长度。1 <= n <= 100000。
    第二行包含n个整数,为非降序列各元素。所有元素的大小均在0-1,000,000,000之间。
    第三行包含一个整数m,为要询问的给定值个数。1 <= m <= 10000。
    接下来m行,每行一个整数,为要询问最接近元素的给定值。所有给定值的大小均在0-1,000,000,000之间。

【输出】
    m行,每行一个整数,为最接近相应给定值的元素值,保持输入顺序。若有多个值满足条件,输出最小的一个。

【样例输入】
    3
    2 5 8
    2
    10
    5

【样例输出】
    8
    5

【题目分析】
板子题。

【代码实现】

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int n;
 4 long a[100001];
 5 long m;
 6 long k;
 7 void binarysearch(long long w)
 8 {
 9     int left=1;
10     int right=n,mid;
11     while(right>left+1)
12     {
13         mid=left+(right-left)/2;//第一遍写成left-right了 
14         if(a[mid]<w)
15         {
16             left=mid;
17         }else 
18         {
19             right=mid; 
20         }
21     }
22     if(abs(a[left]-w)<=abs(a[left+1]-w)){
23         cout<<a[left]<<endl;
24     }else{
25         cout<<a[left+1]<<endl;
26     }
27 }
28 int main()
29 {
30     long m;
31     long k;
32     scanf("%d",&n);
33     for(int i=1;i<=n;i++)
34     {
35         scanf("%d",&a[i]);
36     }
37     scanf("%d",&m);
38     for(int i=1;i<=m;i++)
39     {
40         scanf("%d",&k);
41         if(n==1){
42             printf("%d
",a[1]);//这里记得换行,不然会Presentation Error
43         }else{
44             binarysearch(k);
45         }
46         
47     }
48 
49     return 0;
50 }

免责声明:文章转载自《Openjudge1.11.1 查找最接近的元素》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇teradata中EXPLAIN执行计划总结Human3.6M数据集下载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

el-checkbox点击无法回显

问题:动态赋予el-checkbox给isChecked属性时候,前端样式不生效 原因:前端添加checked属性, vue并没有添加get set方法,因此,监听不到checked值变化,进而不能更新view。 方案: 用set方法 this.$set(item2, 'isChecked', true) <!-- * @Author:wht...

Spring RestTemplate简介及使用

Spring RestTemplate介绍 1、springRestTemplate 简介 spring 提供的同步请求Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。 是Spring用于同步client端的核心类,简化了与http服务的通信,并满足RestFul原则,程序代码可以给它提...

NLog使用方法

一、软件网站:http://www.nlog-project.org/下载:http://sourceforge.net/project/showfiles.php?group_id=116456说明:如果是.Net 2.0使用, 请下载nlog-1.0-net-2.0.zip      里面的bin目录下有多个,c# 使用nlog.dll文件:nlog....

【转】WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等。 本文主要内容: DataGrid自定义样式; ListView自定义样式; 二.DataGrid自定义样式 DataGrid是常用的数据列表显示控件,先看看实现的效果(动态图,有点大): DataGrid控件样式结构包括以下几个部分:...

Mybatis-第N篇配置log4j1、log4j2打印执行的sql语句

1、log4j1配置    目录结构:       conf.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/myba...

css中div透明度有几种方法设置?

css设置div背景透明有两种方法:第一种使用opacity:0~1,这个方法有个缺点,就是内容也会跟着透明;第二种方法就是rgba(0,0,0,0~1),使用这个方法就只会设置div背景透明,而不会影响到div里的内容。 一、css rgba()设置颜色透明度 语法: rgba(R,G,B,A); RGBA 是代表Red(红色) Green(绿色) Bl...