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常用排序与查找
""" 排序与查找 -- 冒泡排序 -- 选择排序 -- 快速排序 --****经典 -- 希尔排序 """ # 常用排序的实现 # 冒泡排 ...
随机推荐
- 大数据-SparkStreaming
SparkStreaming SparkStreaming是一种微批处理,准实时的流式框架.数据来源包括:Kafka, Flume,TCP sockets,Twitter,ZeroMQ等 SparkS ...
- softmax-Fork
softmax和分类模型 内容包含: softmax回归的基本概念 如何获取Fashion-MNIST数据集和读取数据 softmax回归模型的从零开始实现,实现一个对Fashion-MNIST训练集 ...
- Apache如何开启Gzip压缩
https://teddysun.com/326.html 在开启 Gzip 之前,需先确认 Apache 的配置文件中有没有加载 mod_deflate 和 mod_headers 模块. 打开Ap ...
- i5+GT730+B85安装OSX10.10.5 (Yosemite Install(14F27).cdr)
1.用windows磁盘管理工具分出10G分区,指定盘符,但不格式化 2.管理员身份打开“硬盘安装助手” 3.选择cdr文件,取消3个选择框,然后开始写入 4.有可能需要重置安装分区的磁盘标识为AF ...
- Flask 教程 第十七章:Linux上的部署
本文翻译自The Flask Mega-Tutorial Part XVII: Deployment on Linux 这是Flask Mega-Tutorial系列的第十七部分,我将把Microbl ...
- python如何将自己写的代码打包供他人使用
背景: 利用setuptools来实现,所以先安装setuptools,其实Python2.7.9及之后的版本都自带安装setuptools了,无需在另外安装 如果没有安装setuptools的直接下 ...
- Loading class `com.mysql.jdbc.Driver'. This is deprecated
注意mysql的版本,pom.xml里面的版本.External Librarlies里面的mysql版本.application.properties版本都要检查 有时候还会报 Invalid bo ...
- AcWing 860. 染色法判定二分图
#include <cstring> #include <iostream> #include <algorithm> using namespace std; , ...
- php 裁剪图片并处理png图片背景变黑
/*TODO 图片裁剪*/ function img_cutting($file_old,$file_new,$h,$w){ $image = $file_old; // 原图 $dir = 'xxx ...
- 华硕笔记本(i76700hq+nvidia goforce940mx)安装ubuntu18.04
Ubuntu的安装 今天终于下定决心要把笔记本安装成Ubuntu,但是网上的教材不够全面,我就想整合以下教程. 接下来详细讲解安装过程 1. Ubuntu iso镜像下载 下载地址:https://w ...