题目描述

图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数。每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他需要的书,请输出-1。
提示:C++ 中命令 a%b 将得到 a 除以 b 的余数,如 cout<<5%3; 将得到 2
输入
输入的第一行,包含两个正整数 n 和 q,以一个空格分开,分别代表图书馆里 书的数量和读者的数量。
接下来的 n 行,每行包含一个正整数,代表图书馆里某本书的图书编码。
接下来的 q 行,每行包含两个正整数,以一个空格分开,第一个正整数代表图书馆里读者的需求码的长度,第二个正整数代表读者的需求码。
1 ≤ n ≤ 1,000,1 ≤ q ≤ 1,000,所有的图书编码和需求码均不超过10,000,000。
输出
输出有 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

题解:

首先将所以的书籍编码从小到大排序,然后每输入一个需求码长度+需求码 就去遍历书籍编码,从右往左一次判断是否相等,如果不相等 or 书籍编码或者需求码等于0,则退出循环,必须保证flag为true(需求码能够和书籍编码的尾部匹配) and ** 需求码已经为0了(因为要保证正好把需求码判断完了,比如书籍编码为23,需求码为123,那需求码除到最后不等于0,所以即使尾部匹配但还是不满足要求)**。
然后判断是不是提前break出来的大循环(j != n),如果是,说明找到了满足要求的最小的需求码,就打印出结果,否则,打印出-1.

代码:

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <deque>
#include <list>
#include <utility>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <bitset>
#include <iterator>
using namespace std;typedef long long ll;
const int inf = 0x3f3f3f3f;
const ll  INF = 0x3f3f3f3f3f3f3f3f;
const double PI = acos(-1.0);
const double E = exp(1.0);
const int MOD = 1e9+7;
const int MAX = 1e3+5;
int n,q;
int a[MAX];int main()
{/*ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);*/cin >> n >> q;for(int i = 0; i < n; i++){cin >> a[i];}sort(a,a+n);int r_len,r;for(int i = 0; i < q; i++){cin >> r_len >> r;/*如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。*/bool flag;int j;for(j = 0; j < n; j++){flag = true;int t_r = r;int t_aj = a[j];for(int k = 1; k <= r_len; k++){if(!t_r || !t_aj){break;}if(t_r%10 != t_aj%10){flag = false;break;}t_r /= 10;t_aj /= 10;}if(flag && t_r == 0)break;}if(j != n)cout << a[j] << endl;elsecout << -1 << endl;}return 0;
}

51Nod 2075 图书管理员 c/c++题解相关推荐

  1. 51nod 2075 图书管理员

    题目 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数.每位借书的读者手中有一个需求码,这个需求码也是一个正整数.如果一本书的图书编码恰好以读者的需求码结尾,那么这本书就 ...

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

    链接:#[NOIP2017]图书管理员# 题目牛客网是互联网求职神器,C++.Java.前端.产品.运营技能学习/备考/求职题库,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨 ...

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

    洛谷来源:P3955 [NOIP2017 普及组] 图书管理员 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/sol ...

  4. 周末狂欢赛2(冒泡排序,概率充电器,不勤劳的图书管理员)

    狂欢2 T1:冒泡排序 题目 题解 CODE T2:概率充电器 题目 题解 CODE T3:不勤劳的图书管理员 题目 题解 CODE 我不这么认为.... T1:冒泡排序 题目 下面是一段实现冒泡排序 ...

  5. 【loj2639】[Tjoi2017]不勤劳的图书管理员

    #2639. 「TJOI2017」不勤劳的图书管理员 题目描述 加里敦大学有个帝国图书馆,小豆是图书馆阅览室的一个书籍管理员. 他的任务是把书排成有序的,所以无序的书让他产生厌烦,两本乱序的书会让小豆 ...

  6. 【BZOJ4889】[Tjoi2017]不勤劳的图书管理员 分块+树状数组

    [BZOJ4889][Tjoi2017]不勤劳的图书管理员 题目描述 加里敦大学有个帝国图书馆,小豆是图书馆阅览室的一个书籍管理员.他的任务是把书排成有序的,所以无序的书让他产生厌烦,两本乱序的书会让 ...

  7. 信息学奥赛一本通 1415:【17NOIP普及组】图书管理员 | 洛谷 P3955 [NOIP2017 普及组] 图书管理员

    [题目链接] ybt 1415:[17NOIP普及组]图书管理员 洛谷 P3955 [NOIP2017 普及组] 图书管理员 [题目考点] 1. 枚举 2. 二分 [解题思路] 解法1:枚举 对于每个 ...

  8. springboot图书管理怎么实现借书时间到期提醒_智能机器人充当图书管理员,看看它能干嘛...

    想必大家都去过图书馆吧,每当出现一些问题时,大家都会询问图书管理员.说起图书管理员的工作,大多数人的印象是强度大.单调且单一.重复性强.效率低.如果智能机器人走进图书馆,当起了图书管理员了,现状将完全 ...

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

    图书管理员图书管理员图书管理员 题目描述 图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个正整数. 每位借书的读者手中有一个需求码,这个需求码也是一个正整数.如果一本书的图书编 ...

最新文章

  1. 薅百度GPU羊毛!PaddlePaddle大升级,比Google更懂中文,打响AI开发者争夺战
  2. LINUX-Shell第一课
  3. SpringBoot+POI实现导入Excel时验证并返回错误Cell标红的文件
  4. 绕过网关访问图片上传并解决跨域问题
  5. Seaborn初学指南
  6. 关于SpringCloud微服务云架构构建B2B2C电子商务平台之- Spring Cloud集成项目简介(三)...
  7. 【杂文】【python】Python 对象的析构
  8. 智能优化算法:鲸鱼优化算法-附代码
  9. 背景图页面缩小会变形_HTML中怎么让背景图片跟着浏览器窗口变大变小?
  10. c语言中shift f12组合建,如何在word中将文本框组合快捷键是什么
  11. HDU-4747 Mex
  12. python英语词汇读音_40行Python代码区分英语单词和汉语拼音
  13. 中文语音合成综合评测一(可懂度)
  14. 使用python实现科学记数法的书面形式输出
  15. 信创培训第一课:linux操作系统基础
  16. 人工智能与大数据行业的兴起,主要产生了哪些新的职位?
  17. 【bat批处理脚本命令】2分钟看懂,一键主机windows系统远程连接控制阿里云等windows系统的云服务器(保姆级图文+实现代码)
  18. 使用ThreeJs从零开始构建3D智能仓库——第三章(选中物体与特效)
  19. 基于虚拟化的混合云集群——基于集群管理监控系统
  20. 【PRINCE2总述】

热门文章

  1. 何为非侵入式负荷分解
  2. 反思|开启B站少女心模式,探究APP换肤机制的设计与实现
  3. SIP开源项目opensip,Freeswitch
  4. H5实现九宫格效果抽奖
  5. TCP/IP 之蓟辽督师
  6. 就业信息管理系统的设计与实现
  7. 微信公众号自定义分享IOS失效
  8. 大道至简 知易行难 C# 完成WebSocket demo 用GoEasy实现Hello world
  9. OpenStreetMap数据Qt5分析实战(基于2020数据)
  10. 毕业设计-进销存管理系统