图书管理员图书管理员图书管理员

题目描述

图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。

每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需 求码结尾,那么这本书就是这位读者所需要的。

小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位 读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出-1。

输入

输入文件的第一行,包含两个正整数 n 和 q,以一个空格分开,分别代表图书馆里书的数量和读者的数 量。

接下来的n 行,每行包含一个正整数,代表图书馆里某本书的图书编码。

接下来的q 行,每行包含两个正整数,以一个空格分开,第一个正整数代表图书馆里读者的需求码的长 度,第二个正整数代表读者的需求码。

输出

输出文件有 q 行,每行包含一个整数,如果存在第 i 个读者所需要的书,则在第 i行输出第i 个读者所需要的书中图书编码最小的那本书的图书编码,否则输出-1。

输入样例

5 5

2123

1123

23

24

24

2 23

3 123

3 124

2 12

2 12

输出样例

23

1123

-1

-1

-1

说明

对于 20%的数据, 1 ≤ n ≤ 2。

另有 20%的数据, q = 1。

另有 20%的数据,所有读者需求码长度均为 1。

另有 20%的数据,所有图书 编码 按从小到大 小到大 的顺序 给出。

对于 100%的数据, 1 ≤ n ≤ 1,000,1 ≤ q ≤ 1,000,所有的图书编码和需求码均不超过 10,000,000。

解题思路:

这道题可以用一个数组来储存每一个图书编码,然后排序一遍,因为他已经告诉我们第i个读者需求码的长度,用图书编码对10x10^{x}10x求余(x是读者需求码的长度)的结果和读者需求码比较,如果相同这就是当前的最优。

#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n,m,x,z,k,st,a[1005];
int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n;i++)scanf("%d",&a[i]);//读入图书编码sort(a+1,a+1+n);//排序for (int i=1;i<=m;i++){scanf("%d%d",&x,&k);//x为读者需求码的长度,k为读者的需求码st=-1;z=1;//清零while(x) x--,z*=10;//求10^xfor (int j=1;j<=n;j++)if (k==a[j]%z) {st=a[j];//找到结果,储存break;//因为前面排过序了,所以当前的是最优的,找到后就退出}printf("%d\n",st);}
}

图书管理员【2017年普及组第二题】相关推荐

  1. luogu3955 图书管理员(NOIP2017普及组第2题)

    luogu3955 图书管理员(NOIP2017普及组第2题) 时空限制    1000ms/128MB 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. ...

  2. NOIP1996复赛 普及组 第二题 python

    http://noi.openjudge.cn/ch0108/02/ """ NOIP1996复赛 普及组 第二题 python1.8编程基础之多维数组 02 同行列对角 ...

  3. NOI Online #2 普及组 第二题:荆轲刺秦王

    NOI Online #2 普及组 第二题:荆轲刺秦王 前言 题目 解析 完整代码 前言 做题之前,让我们大吼几声: 你 这 个 " 良 心 " 出 题 人 ! \bold{\so ...

  4. NOIP 2002 普及组第二题

    [NOIP2002 普及组] 选数 题目描述 已知 n 个整数 x1,x2,x3,xn,以及 1 个整数 k(k<n).从 n 个整数中任选 k个整数相加,可分别得到一系列的和.例如当 n=4, ...

  5. 回文日期(NOIP2016 普及组第二题)

    描述 在日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期.显然:一个日期只有一种表示方法, ...

  6. 扫雷游戏(NOIP2015 普及组第二题)

    描述 扫雷游戏是一款十分经典的单击小游戏. 在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格). 玩家翻开一个非地雷格时,该格将会出现一个数字--提示周围格子中有 ...

  7. 表达式求值(NOIP2013 普及组第二题)

    描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值. 格式 输入格式 输入仅有一行,为需要你计算的表达式,表达式中只包含数字.加法运算符"+"和乘法运算符" ...

  8. 2012-2018普及组第一题题解

    noip2018 标题统计 [题目描述] 凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大.小写英文字母.数字字符.空格和换行符.统计标题字符数时,空格和换行符不计 ...

  9. NOIP2002普及组第一题【级数求和】题解 (普及山东tyd)

    一道水题,我就不想多说什么了. //题目洛谷链接  https://www.luogu.org/problemnew/show/P1035 //题目Openjudge链接  http://noi.op ...

最新文章

  1. 教程 | OpenCV深度神经网络实现人体姿态评估
  2. Windows Server2008安装mysql5.6出现程序无法正常启动(0xc000007b)
  3. FatFs文件系统的移植
  4. arm-linux-g 找不到头文件,交叉编译错误“ arm-none-eabi-g ++找不到条目符号”
  5. WAP开发笔记(1)-.net移动页面中html控件不能直接显示的解决
  6. Windows 8 Directx 开发学习笔记(二)建立模型及初始化设备
  7. 【Python】socket编程——使用TCP协议实现智能聊天机器人
  8. 解析几何----向量的线性表示等和线定理成等差数列
  9. Mplayer播放器程序设计Linux,linux下源码安装mplayer播放器
  10. c语言ans作用,C语言的递归思想实例分析
  11. 惠普HP DeskJet Ink Advantage 2778 驱动
  12. 海思Hi3519A 基础入门教程
  13. 双鱼林 android 服务器,双鱼林安卓Android代码生成器下载_双鱼林安卓Android代码生成器官方下载-太平洋下载中心...
  14. 旅行商问题(遗传算法)
  15. Ubuntu16.04 NVIDIA显卡驱动卸载与安装
  16. 面试字节跳动的一点小经验
  17. 网络的全双工与半双工
  18. TCP-IP详解:SACK选项(wireshark抓包有SLE和SRE的SACK包)
  19. OpenMVS+Win10+VS2019+vcpkg编译及问题
  20. [Kubic] Lines

热门文章

  1. java中的console是干什么的_[Java教程]javascript中,你真的会用console吗?
  2. aes算法实现c语言_以C语言实现归并排序为例,谈谈五大常用算法之一的“分治法”...
  3. 动手实现深度学习pytroch版
  4. leetcote34. 在排序数组中查找元素的第一个和最后一个位置
  5. [MyBatisPlus]通用Service接口测试通用Service
  6. [蓝桥杯][2018年第九届真题]调手表-bfs
  7. 二分+01分数规划+最大化平均值 Dropping tests POJ - 2976
  8. php抓取多个网页合并,PHP 使用 CURL 同步抓取多个网页
  9. html坐标轴背景色,CSS 背景(css background)
  10. 新方法-根据上排给出十个数,在其下排填出对应的十个数