CCF NOI1044 最近元素
问题链接:CCF NOI1044 最近元素。
时间限制: 1000 ms 空间限制: 262144 KB
题目描述
在一个非降序列中,查找与给定值最接近的元素。
输入
第一行包含一个整数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 <= n <= 100000。
提示
问题分析
这是一个查找问题,可以使用二分法。
输入数据是非降序的,所以就不用排序了。
找的数满足差值最小,而差值有可能为正,也有可能为负。对于中间的数, 差值为正时,差值更小的数必然在左边;差值为负时,差值更小的数必然在右边。
程序说明
(略)
要点详解
- 二分法属于分治法,是有效的方法,其计算复杂度为log(n)。
参考链接:(略)。
100分通过的C语言程序:
#include <stdio.h>
#include <stdlib.h>#define N 100000
int a[N];int find(int start, int end, int x)
{int mid;while(start < end) {mid = (start + end) / 2;if(a[mid] > x)end = mid;elsestart = mid;if(start + 1 == end) {if(abs(x - a[start]) > abs(x - a[end]))start = end;elseend = start;}}return start;
}int main(void)
{int n, m, x, i;// 读入数据scanf("%d", &n);for(i=0; i<n; i++)scanf("%d", &a[i]);// 处理询问scanf("%d", &m);for(i=1; i<=m; i++) {scanf("%d", &x);// 二分查找int anspos = find(0, n - 1, x);// 输出结果printf("%d\n", a[anspos]);}return 0;
}
CCF NOI1044 最近元素相关推荐
- CCF认证历年真题 满分代码(更新至2018年12月)
目标是集齐所有CCF认证试题的满分代码! 每次考试出题一般规律: 第一题:水题(稍微有些编程经验就可以写) 第二题:小模拟(处理比较简单的问题,掌握C++STL很有帮助) 第三题:大模拟(处理复杂的问 ...
- widget中文技术文档
Version 3.1.1 版 2006 年 4 月 14 日 著作权 2002-2006 Yahoo! Inc. 保留所有权利 版本历史 第一次发行 第二次发行 第三次发行 第四次发行 第五 ...
- C++版本OpenCv教程
C++版本OpenCv教程(一)Mat-基本的图像容器 目标 我们有多种方法从现实世界获取数字图像:数码相机.扫描仪.计算机断层扫描和磁共振成像等等.在以上任何情况下,我们(人类)看到的都是图像.然而 ...
- CCF NOI1045 元素之和
问题链接:CCF NOI1045 元素之和. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 输入4*4方阵,分别求两条对角线上元素之和. 输入 输入4*4方阵. 输出 输出两 ...
- ccf z字形 java_第三次CCF计算机软件能力认证题目:Z字形扫描
这是第三次CCF计算机软件能力认证考试(2014年12月14日)的一道题目.小编今天有幸免费参加了这次考试.据说这题是谷歌的笔试题变形??求证实.. 好了,题外话不啰嗦,看题目 题目 在图像编码的算法 ...
- 云计算的未来,就是“打车模式” | CCF C³@亚马逊云科技
金磊 梦晨 发自 凹非寺 量子位 报道 | 公众号 QbitAI 企业"无云"将会非常罕见,就像"无网络"一样窘迫. 早在2016年,知名研究机构Gartner ...
- 定义了浮动元素后margin-bottom失效的解决办法
2019独角兽企业重金招聘Python工程师标准>>> 虽然IE6慢慢的退出市场了,但是还是有必要了解一些兼容问题,让自己的知识有一个更好的沉淀.margin-bottom的bug是 ...
- CCF NOI1054 扫雷游戏
问题链接:CCF NOI1054 扫雷游戏. 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 扫雷游戏是一款十分经典的单机小游戏.它的精髓在于,通过已翻开格子所提示的周围格地雷 ...
- 技术论坛 | CCF YOCSEF上海即将在 CNCC 举办“知识图谱遇见社交媒体”专题论坛
中国计算机学会青年计算机科技论坛 CCF YoungComputer Scientists & Engineers Forum CCF YOCSEF上海 CNCC2017大会技术论坛 主题: ...
最新文章
- 数据结构与算法:14 Leetcode同步练习(五)
- 【pmcaff】电商人必须了解的生意经:女人的生意怎么做?
- POJ3678-Katu Puzzle【2-SAT】
- linux查看java虚拟机内存_深入理解java虚拟机(linux与jvm内存关系)
- PL/SQL Developer SQL Window中不能插入多条数据
- 关于 # 符号的使用 - 给 厨师 的回复
- vasp和ms_采用MS建模的基本步骤以及vasp新手入门需要注意的十个简单问题
- 计算机网络中最常用的三种设备,计算机网络基础试卷6
- 服务器信息批量收集,如何批量导入或导出服务器信息
- 3.33 利用快速蒙版制作选区 [原创Ps教程]
- HDU5510 Bazinga(KMP)
- linux用户无法接收邮件,linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(一)-系统账户登陆收发邮件...
- 用python-turtle优雅的画椭圆
- x265编码H265
- 安装es-header插件
- 筛质数—(朴素筛法、埃氏筛法、欧拉筛法(线性筛法))
- 讲python讲得好的评价_分析20万条弹幕告诉你,8.9分的高分剧《隐秘的角落》到底好看在哪儿?...
- [LeetCode]91.Decode Ways
- iOS开发:分辨率像素你知多少
- python入门须知
热门文章
- 使用Unity开发RPG游戏完整指南(全)
- 常用JQuery插件整理 1
- Flash教程:多种图片切换效果
- Visual C# 资源文件编程--使用资源文件
- javaweb不同用户登录不同页面的页面_Java Web轻松学36 - 第二个Servlet应用租房网(1)...
- 【java学习之路】(mysql篇)001.mysql基本介绍、常用命令及简单查询
- 计算机管理主要是作业管理和什么管理,计算机四级之作业管理试题
- Linux 下 Weblogic 的安装 、配置以及发布
- java 有三个map,第一个map是第二个和第三个map的key的对应映射,对比第二个map的值和第三个map对的值是否一致
- OpenCV精进之路(十三):角点检测