图书管理员 题解(C++,NOIP 2017 普及 T2)

【C++题解】[NOIP2017]图书管理员 如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。刚刚当上图书馆的管理员,他知道图书馆里所有书的图书编码,请你帮他写一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出。接下来我们就进行到下一阶段:寻找书,本题好心地告诉了我们读者的需求码的长度,但可能大家都不知道这个是干什么用的,但我们可以通过。行,每行包含两个正整数,以一个空格分开,第一个正整数代表图书馆里读者的需求码的长度,第二个正整数代表读者的需求码。个读者所需要的书,则在第。 阅读详情

题目描述:

图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图 书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 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。

题解代码:

#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <algorithm>//sort()快速排序的库
using namespace std;
int n,q;
int main()
{
	cin>>n>>q;
	int book[n],ans[q],l[q],peo[q],p;

    //book是书籍编号
    //ans是答案
    //l是每个读者的需求码长度
    //peo是每个读者的需求码
    //p是一个中转变量
    //以上数据全部以int形式保存

	memset(book,0,sizeof(book));
	memset(ans,-1,sizeof(ans));
	memset(l,0,sizeof(l));
	memset(peo,0,sizeof(peo));

    //初始化完毕
	
	for(int i=0;i<n;i++)cin>>book[i];//输入每本图书的检索码
	sort(book,book+n);//快速排序,从小到大以便按序检索
	
	for(int i=0;i<q;i++)
	{
		cin>>l[i]>>peo[i];//输入每个读者的需求码
		for(int o=0;o<n;o++)//对于每个检索码,从头到尾检索所有图书
		{
			p=pow(10,l[i]);
			if((book[o])%p==peo[i])//如果该本图书的后l[i]位和peo[i]相同
			{
				ans[i]=book[o];//更新答案
				break;//结束检索,跳出循环
			} 
		}
	}
	
	for(int i=0;i<q;i++)
	{
		cout<<ans[i]<<endl;//输出答案
	}
}

 

2017NOIP真题题解: 2017年普通组21题详解: 个人站在坐标(0, 0)处,面朝x 轴正方向。第一轮,他向前走1 单位距离,然后右转;第二轮,他向前走2 单位距离,然后右转;第三轮,他向前走3 单位距离,然后右转……他一直这么走下去。请问第2017 轮后,他的坐标是:( , )。 【解析】 走法见上图,第1步,X轴+1,第2步,Y轴-2,第3步X轴-3,第4步,Y轴+4,第5步,X轴+5,...,可以找出规律:假设走的步数为n,n%4,余1是X轴+n,余2是Y轴-n,余3是X... 阅读详情

相关推荐

2017noip普及组 T2 librian

copy from luogu:P3955 图书管理员题目描述图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图 书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写 一个程序,对于每一位读者,求出他所需要的

冫Sj的博客 451

洛谷 P3955 图书管理员【民间数据】

P3955 图书管理员【民间数据】 题目背景 数据已再次修正 (既然你们不要前导0我就去掉了) 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图 书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书...

HJ921004的博客 671

P3955 [NOIP2017 普及组] 图书管理员C++题解

P3955 [NOIP2017 普及组] 图书管理员

xiaoxing06的博客 1419

图书管理员【2017年普及组第二题】

图书管理员图书管理员图书管理员 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需 求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位 读者,求出他所需要的书中图书编码...

ssllyf的博客 4967

题解:洛谷 P3955 [NOIP 2017 普及组] 图书管理员

如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出。行,每行包含两个正整数,以一个空格分开,第一个正整数代表图书馆里读者的需求码的长度,第二个正整数代表读者的需求码。个读者所需要的书中图书编码最小的那本书的图书编码,否则输出。,以一个空格分开,分别代表图书馆里书的数量和读者的数量。#普及-# #其他排序#

团爸讲算法 1158

【NOIP 2017】入门组第二轮题解

【NOIP2017】入门组第二轮题解

weixin_42596089的博客 474

Noip2017普及组普及组题解:图书管理员(C++)

题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出-1。 输入描述: 输入的第一行,包含两个正整数 n 和 q,以一个空格分开,分别代表图书馆里书的数量和读者的数量。

liuzich的博客 3970

OpenClaw + Ollama 本地大模型部署教程:彻底告别Token焦虑

OpenClaw + Ollama 本地大模型部署教程:彻底告别Token焦虑

leaning_java的博客 1229

洛谷 P3955 [NOIP2017 普及组] 图书管理员

本文针对洛谷 P3955 [NOIP2017 普及组] 图书管理员问题提出了一种基于哈希映射的高效解法。通过预处理图书编码,建立后缀到最小编码的映射关系,实现快速查询。具体步骤包括:输入并排序图书编码;从大到小处理每个编码,将其所有可能的后缀存入哈希表;查询时直接检查需求码对应的最小图书编码。文章提供了C++和Python两种实现代码,并分析了算法的时间复杂度。该方法通过空间换时间,保证了查询的快速响应,适用于题目给定的数据规模。

jzwalliser的博客 2246

PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)java

PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)java 小博是新城小学二年级学生,这孩子人很老实,数学、语文成绩都是中等。不过一旦坐在电脑前,写起代码来,则有些霸气侧漏,尤其擅长各种暴力方法。本题就是数学莫老师的题目之一,请你和小博一起暴力求解吧。 输入格式: 第一行给出这个和N(图中例子的和N为2000)。 输出格式: 第一行输出所有解的数目K,随后K行按照DCBA 4位数字从...

qryzhfj的博客 2192

宿舍网速跑不满?可能是PPPoE的锅!实测OpenWrt切换DHCP+深澜认证,轻松跑满校园百兆宽带

本文探讨了校园网PPPoE协议的性能瓶颈问题,并提供了通过OpenWrt路由器切换DHCP+深澜认证的技术方案,实测可显著提升网速至百兆宽带满速。文章详细介绍了配置步骤、性能对比及常见问题解决方案,帮助用户优化校园网体验。

weixin_31310913的博客 385

NOIP 2017 普及组

文章目录T1 成绩T1分析T2 图书管理员T2分析T3 棋盘T3分析解法 I解法 IIT4 跳房子T4分析 T1 成绩 题目点击→计蒜客 [NOIP2017] 成绩 题目描述 牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是: 总成绩=作业成绩 ×20%\times 20\%×20% + 小测成绩 ×30%+\times 30\%+×30%+ 期末考试成绩 ×50%\times 50\...

jnxxhzz的博客 1万+

WSL 相关命令时遇到了 “无法从raw.githubusercontent.com提取分发列表、操作超时

核心问题:国内网络屏蔽raw.githubusercontent.com,导致WSL无法获取发行版列表;最优方案:优先用方案1(手动指定发行版安装),无需改配置,1分钟搞定;永久修复:用方案2(修改hosts),适合需要管理多个WSL发行版的场景;兜底方案:用方案3(手动下载安装包),适配所有网络环境。按以上步骤操作后,你不仅能正常安装WSL,等命令也能正常执行,后续可正常使用WSL搭配Docker Desktop(如切换WSL 2后端),无需再担心网络超时问题。

weixin_39766667的博客 2147

NOIP2017 普及组题解

1、[NOIP2017 普及组] 成绩 分析 签到题,略。 代码 #include<iostream> #include<cstdio> using namespace std; int A,B,C; int score(int,int,int); void init(); void solve(); int main(){ init(); solve(); return 0; } int score(int a,int b,int c){ return

weixin_46600392的博客 1281

关于MII、RMII、GMII、RGMII、PHY、网络变压器、RJ45的硬件总结

文章目录前言一、网络传输结构及原理1.以太网的工作原理2.TCP/IP协议3.数据链路层(MAC)二、介质独立接口MII,RMII,GMII,RGMII1.MII(Media Independent interface)2.RMII(Reduced Media Independent Interface)3.GMII(Gigabit Medium Independent)4.RGMII(Reduced Gigabit Media Independent Interface)三、物理层芯片(PHY)二、使用步

weixin_44415816的博客 3万+

TI毫米波雷达人体生命体征(呼吸、心跳)信号提取算法(IWR6843ISK+DCA1000EVM)

本篇内容介绍的算法主要为传统的提取算法,但可实现在1m内呈现良好的检测效果,能够提取出非常可观的呼吸和心跳波形,但在超出1m的距离后便不适用这个算法了。远距离检测呼吸和心跳始终是这个领域一个很大的挑战。要实现远距离检测可在提取相位信号、分离呼吸和心跳信号上进行改进处理,例如线性解调提取相位、改进的VMD分离呼吸和心跳算法。

m0_61934621的博客 3万+

2017年NOIP普及组复赛真题解析

具体而言,当g< d时,他的机器人每次可以选择向右弹跳的距离为 d-g, d-g+1, d-g+2,...,d+g-2,d+g-1,d+g;花费2个金币改进后,小R的机器人依次选择的向右弹跳的距离分别为2,3,5,3,4,3,先后到达的位置分别为 2,5,10,13,17,20,对应1, 2, 3, 5, 6, 7这6个格子。从(2,3)走到(3,3)不花费金币 从(3,3)只能施展魔法到达(3,2),(2,3),(3,4),(4,3) 而从以上四点均无法到达(5,5),故无法到达终点,输出-1。

weixin_42358969的博客 1282

pcb印刷电路缺陷检测----数据集准备

PKU-Market-PCB 印刷电路板 (PCB) 瑕疵数据集是一个公共合成 PCB 数据集,包含 1,386 张图像,具有 6 种缺陷(漏孔、鼠咬、开路、短路、杂散、杂铜),可用于图像检测、分类和配准任务。

qq_30190551的博客 4433

[NOIP2017]图书管理员

题号:NC16422时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M。

DexterYttt的博客 611

使用STARTER V5.6软件将项目文件下载到S120驱动器控制单元CF卡中的具体方法演示

使用STARTER V5.6软件将项目文件下载到S120驱动器控制单元CF卡中的具体方法演示

Robot_PLC_HMI_Automation 1914

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

noip2017爆炸记——题解&总结&反省(普及组+提高组)

相关链接: noip2018总结 noip2017是我见过的有史以来最坑爹的一场考试了。 今年北京市考点有一个是我们学校,我还恰好被分到了自己学校(还是自己天天上课的那个教室),于是我同时报了普及提高,一天半的时间都考了。 这次考试总的来说基本上都爆炸了。虽然都拿了一等奖,但这根本不能说明问题,从中可以看出我在敲代码学习上还是问题百出。 下面我分两篇来总结一个kubi的OIer...

weixin_30475039的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

noip2017普及组

过了这么久才来写博客,也是我这么一段时间都很低迷吧。。。。 老实来说,今年应该是要打提高组的。。。可还是打了普及组。。。 其实最猥琐的还是我连普及都写挂了,作为一个学了两年的人,图论,进阶dp都写过的人,才打了210分,我实在没脸。 现在来讲讲题解吧。 T1成绩 题目描述 牛牛最近学习了C++入门课程,这门课程的总成绩计算方法是: 总成绩=作业成绩×20%+小测成绩×30%+期末考试

雪影 3093

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

牛客题库 题解 | #[NOIP2017]图书管理员#

题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出-1。 输入描述:.....................

weixin_56417157的博客 606

图书管理员

题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出-1−1。

jdjh36的博客 258

NOIP2017解题报告

前言 score 题目描述 输入格式: 输出格式: 输入样例 输出样例 输入输出样例说明 数据规模 分析 代码 librarian 题目描述 输入格式: 输出格式: 输入样例 输出样例 数据规模 分析 代码 chess 写在前面 题目描述 输入格式: 输出格式: 输入样例 输出样例 输入输出样例说明 数据规模 来自55分的分析 来自55分...

alljyf1995的博客 218
上一篇: 标题统计 题解(C++,NOIP 2018 普及 T1)
下一篇: 亲和数-C++
Draba_Chen
博客等级 码龄8年 134粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值