图书管理员【2017年普及组第二题】
图书管理员图书管理员图书管理员
题目描述
图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。
每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需 求码结尾,那么这本书就是这位读者所需要的。
小 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年普及组第二题】相关推荐
- luogu3955 图书管理员(NOIP2017普及组第2题)
luogu3955 图书管理员(NOIP2017普及组第2题) 时空限制 1000ms/128MB 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数. ...
- NOIP1996复赛 普及组 第二题 python
http://noi.openjudge.cn/ch0108/02/ """ NOIP1996复赛 普及组 第二题 python1.8编程基础之多维数组 02 同行列对角 ...
- NOI Online #2 普及组 第二题:荆轲刺秦王
NOI Online #2 普及组 第二题:荆轲刺秦王 前言 题目 解析 完整代码 前言 做题之前,让我们大吼几声: 你 这 个 " 良 心 " 出 题 人 ! \bold{\so ...
- NOIP 2002 普及组第二题
[NOIP2002 普及组] 选数 题目描述 已知 n 个整数 x1,x2,x3,xn,以及 1 个整数 k(k<n).从 n 个整数中任选 k个整数相加,可分别得到一系列的和.例如当 n=4, ...
- 回文日期(NOIP2016 普及组第二题)
描述 在日常生活中,通过年.月.日这三个要素可以表示出一个唯一确定的日期. 牛牛习惯用8位数字表示一个日期,其中,前4位代表年份,接下来2位代表月份,最后2位代表日期.显然:一个日期只有一种表示方法, ...
- 扫雷游戏(NOIP2015 普及组第二题)
描述 扫雷游戏是一款十分经典的单击小游戏. 在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格). 玩家翻开一个非地雷格时,该格将会出现一个数字--提示周围格子中有 ...
- 表达式求值(NOIP2013 普及组第二题)
描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值. 格式 输入格式 输入仅有一行,为需要你计算的表达式,表达式中只包含数字.加法运算符"+"和乘法运算符" ...
- 2012-2018普及组第一题题解
noip2018 标题统计 [题目描述] 凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符? 注意:标题中可能包含大.小写英文字母.数字字符.空格和换行符.统计标题字符数时,空格和换行符不计 ...
- NOIP2002普及组第一题【级数求和】题解 (普及山东tyd)
一道水题,我就不想多说什么了. //题目洛谷链接 https://www.luogu.org/problemnew/show/P1035 //题目Openjudge链接 http://noi.op ...
最新文章
- 教程 | OpenCV深度神经网络实现人体姿态评估
- Windows Server2008安装mysql5.6出现程序无法正常启动(0xc000007b)
- FatFs文件系统的移植
- arm-linux-g 找不到头文件,交叉编译错误“ arm-none-eabi-g ++找不到条目符号”
- WAP开发笔记(1)-.net移动页面中html控件不能直接显示的解决
- Windows 8 Directx 开发学习笔记(二)建立模型及初始化设备
- 【Python】socket编程——使用TCP协议实现智能聊天机器人
- 解析几何----向量的线性表示等和线定理成等差数列
- Mplayer播放器程序设计Linux,linux下源码安装mplayer播放器
- c语言ans作用,C语言的递归思想实例分析
- 惠普HP DeskJet Ink Advantage 2778 驱动
- 海思Hi3519A 基础入门教程
- 双鱼林 android 服务器,双鱼林安卓Android代码生成器下载_双鱼林安卓Android代码生成器官方下载-太平洋下载中心...
- 旅行商问题(遗传算法)
- Ubuntu16.04 NVIDIA显卡驱动卸载与安装
- 面试字节跳动的一点小经验
- 网络的全双工与半双工
- TCP-IP详解:SACK选项(wireshark抓包有SLE和SRE的SACK包)
- OpenMVS+Win10+VS2019+vcpkg编译及问题
- [Kubic] Lines
热门文章
- java中的console是干什么的_[Java教程]javascript中,你真的会用console吗?
- aes算法实现c语言_以C语言实现归并排序为例,谈谈五大常用算法之一的“分治法”...
- 动手实现深度学习pytroch版
- leetcote34. 在排序数组中查找元素的第一个和最后一个位置
- [MyBatisPlus]通用Service接口测试通用Service
- [蓝桥杯][2018年第九届真题]调手表-bfs
- 二分+01分数规划+最大化平均值 Dropping tests POJ - 2976
- php抓取多个网页合并,PHP 使用 CURL 同步抓取多个网页
- html坐标轴背景色,CSS 背景(css background)
- 新方法-根据上排给出十个数,在其下排填出对应的十个数