5_1 大理石在哪儿(UVa10474)<排序与查找>
Raju和Meena喜欢玩弹珠,他们有许多上面有号码的弹珠。一开始时,Raju按照弹珠上面的号码由小到大排成一列,然后Meena会要求Raju找出某个号码的第一颗弹珠所在的位置。她会算1…2…3…,如果Raju答对了,他就得1分,否则Meena得1分。玩了多次之后谁的得分多谁就赢了。今天你有机会扮演Raju的角色。由于你们都是很聪明的小孩,你会用电脑来计算,而Meena则写了一个程序来检查你花多少时间来回答所有的问题。
【输入】
输入含有多组测试数据,每组测试数据的第一列有2个正整数N、Q,N代表弹珠的数目,Q代表对于此组测试数据Meena问的问题的数目。接下来的N列每列有一个整数,代表这N个弹珠上的号码(未经排序)。在接下来的Q列每列有一个整数代表Meena所问的问题(球的号码)。所有输入的数字都不会大于10000,且没有负的。
当N=0,Q=0时代表输入结束。请参考样例输入。
【输出】
对每组测试数据请先输出一列,这是第几组测试数据。对每组测试数据Meena所问的每个问题输出一列,输出格式如下其中之一:
•x found at y如果第一个号码为x的弹珠在位置y被发现(位置从1开始算)
•x not found如果找不到号码为x的弹珠
输出格式请参考样例输出。
【样列输入】
4 1
2
3
5
1
5
5 2
1
3
3
3
1
2
3
0 0
【样列输出】
CASE# 1:
5 found at 4
CASE# 2:
2 not found
3 found at 3
【分析与说明】本题考察sort函数和lower_bound的用法,只要理解题中的含义,在利用这两个函数,这题就容易解决了。而sort大家已经很熟悉了,所以这里重点介绍一下lower_bound的用法(作用是查找“大于或等于x的第一个位置”):函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置。如果所有元素都小于val,则返回last的位置。
举例如下:
一个数组number序列为:4,10,11,30,69,70,96,100.设要插入数字3,9,111.pos为要插入的位置的下标
则(注:number为数组名)
pos = lower_bound( number, number + 8, 3) - number,pos = 0.即number数组的下标为0的位置。
pos = lower_bound( number, number + 8, 9) - number, pos = 1,即number数组的下标为1的位置(即10所在的位置)。
pos = lower_bound( number, number + 8, 111) - number, pos = 8,即number数组的下标为8的位置(但下标上限为7,所以返回最后一个元素的下一个元素)。
5_1 大理石在哪儿(UVa10474)<排序与查找>的更多相关文章
- C++ 排序、查找的应用
// order.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "string.h" #includ ...
- leetcode题解:Search in Rotated Sorted Array(旋转排序数组查找)
题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 ...
- 006-筛选分类排序搜索查找Filter-Classificatio-Sort-Search-Find-Seek-Locate
006-筛选分类排序搜索查找Filter-Classificatio-Sort-Search-Find-Seek-Locate https://www.cnblogs.com/delphixx/p/1 ...
- Golang的排序和查找
Golang的排序和查找 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.排序的基本介绍 排序是将一组数据,依指定的顺序进行排列的过程.排序的分类如下 1>.内部排序 指将 ...
- UVA.10474 Where is the Marble ( 排序 二分查找 )
UVA.10474 Where is the Marble ( 排序 二分查找 ) 题意分析 大水题一道.排序好找到第一个目标数字的位置,返回其下标即可.暴力可过,强行写了一发BS,发现错误百出.应了 ...
- vector向量容器元素排序与查找
1.利用标准库函数sort()对vector进行排序 参考源码: #include <algorithm> #include <vector> vector<int> ...
- 九度OJ 1174:查找第K小数 (排序、查找)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6376 解决:2539 题目描述: 查找一个数组的第K小的数,注意同样大小算一样大. 如 2 1 3 4 5 2 第三小数为3. 输入: ...
- NumPy 排序、查找、计数
章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...
- 基于python常用排序与查找
""" 排序与查找 -- 冒泡排序 -- 选择排序 -- 快速排序 --****经典 -- 希尔排序 """ # 常用排序的实现 # 冒泡排 ...
随机推荐
- python面试的100题(8)
企业面试题 15.python新式类和经典类的区别? (在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”,都会获得所有“新式类”的特性 ...
- jar包和war包的介绍和区别(转载)
来源:https://www.jianshu.com/p/3b5c45e8e5bd 做Java开发,jar包和war包接触的挺多的,有必要对它们做一个深入的了解,特总结整理如下: 1.jar包的介绍 ...
- C++11 auto的用法
参考博客:https://www.cnblogs.com/KunLunSu/p/7861330.html
- 杭电oj初体验之 Code
PLA算法: https://blog.csdn.net/red_stone1/article/details/70866527 The problem: Analysis: 题目链接可见:https ...
- 励志成为优产的母猪--------猜数游戏 ,历史记录,pickle保存,队列deque
# pickle 可以处理复杂的序列化语法.(例如自定义的类的方法,游戏的存档等),存档以文件的形式保存 参见 https://www.cnblogs.com/abobo/p/8080447.html ...
- active Directory域服务安装配置
1.在Windows功能启用 2.安装一直下一步即可, 添加用户 添加域管理员 将普通用户添加到Domain Admins里
- ListVIew中包含水平滑动控件,左右滑动时容易触发上下滑动
自定义ListView import android.content.Context;import android.util.AttributeSet;import android.view.Moti ...
- 直方图histeq
histeq的原理: [MN]=size(H); [counts,x]=imhist(H);%H是读取的图像,imhist是对图像直方图进行统计,其中count,是每个灰度值得个数,x代表灰度值.一般 ...
- The Reason Why Cosmetic Airless Bottles Are Widely Used
The contents of the Cosmetic Airless Bottles can be isolated from the air, to prevent the product ...
- 【安卓逆向】反编译ELF的另类技巧
IDA 反编译 ObjDump反编译 ObjDump是ndk环境自带的一个脚本,在android-ndk-r10c/toolchains/arm-linux-androideabi-4.9/prebu ...