LUOGU P3955题解(NOIP 2017第二题)

该博客介绍了LUOGU P3955题目的解法,这是一道NOIP 2017普及组的编程题。题目要求根据图书编码和读者需求码找到读者所需的图书,重点在于模拟和查找编码最小的匹配书籍。博主分享了使用C++实现的解决方案,并提醒在求最小值时应注意使用常量比较,以及可选择预排序输入数据以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

这里写图片描述

今年普及组的第二题,较往年来说,难度大为下降。
首先来看一下算法:
这是一道纯模拟,先用一个b数组存放图书馆里面的书,在定义结构体,存放顾客所需码和所需码的位数。因为神奇的CCF为我们提供了所需码的位数,我们可以直接按位相除,求出尾数,再进行判断。
注意:
1.在进行判断最小值的时候,建议定义常量来进行比较(本蒟蒻今年犯这个错丢了80分)。
2.可以选择在读入b数组的时候就排一遍序(可以不排,但是不稳定)
代码如下:

#include<iostream>
#include<cstdio>
//#include<algorithm>
using nam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值