NOIP2017普及组T2题解
还是神奇的链接
上面依然是题目。
这道题依然很简单,比起2015年的普及组t2好像还是更水一些。
不过这道题能讲的比第一题多。
我们一起来看一下吧!
这一题,我们首先将书的编号全部读入,存在一个数组里。
接下来我们需要对这个数组进行一个操作,那就是用sort排序,因为题目中说要求符合条件的编号最小的一本书,这样的话,排完序,操作会更方便,在后面就能体现。
排完序,我们采取在线处理,因为如果把需求全部读入后,再做,纯属浪费空间。所以我们边读边做。
那么接下来我们要做的就是把需求编号和书的末尾几个数字进行对比,首先排除用字符去处理的思想,太麻烦了,所以我们采用对数字取模的办法,来处理,也就是说我们如果要取书的编号的后l位,我们只需要将该书的编号对10^l取模即可。
但是如果每次都计算未免显得有些麻烦,所以我们可以用一个mod数组去处理,这样就可以了,具体怎么用见代码。
最后,还有一个小技巧,就是说,存在找不到的情况,要输出-1,所以为了避免额外的判断,我们可以将ans的初始值设置为-1,这样不用判断直接输出即可。
还有注意找到符合条件的就记录为ans,然后break,因为我们只要最小的,这就可见当初排序的方便之处。
下面给代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int mod[8]={1,10,100,1000,10000,100000,1000000,10000000};//传说中的mod数组,需要多长的,直接带入下标即可。
int n,q;
int book[1005];//记录图书
int main(){
scanf("%d%d",&n,&q);
for(int i=0;i<n;i++){
scanf("%d",&book[i]);
}
sort(book,book+n);//排序
while(q--){
int l,need;
scanf("%d%d",&l,&need);
int ans=-1; //初始值设置为-1
for(int i=0;i<n;i++){
int get=book[i]%mod[l]; //直接带入对应的截取长度,这就是mod的好处
if(get==need){
ans=book[i];
break; //注意break
}
}
printf("%d\n",ans);
}
return 0;
}
NOIP2017普及组T2题解的更多相关文章
- NOIP2017普及组T1题解
神奇的链接 上面时题目. 其实不得不说,这一题很水,比2015年的第一题水多了. 直接按题目套公式就行了,当然你也可以像我一样化简一下. 直接看代码: #include<cstdio> # ...
- 【题解】NOIP2017 提高组 简要题解
[题解]NOIP2017 提高组 简要题解 小凯的疑惑(数论) 不讲 时间复杂度 大力模拟 奶酪 并查集模板题 宝藏 最优解一定存在一种构造方法是按照深度一步步生成所有的联通性. 枚举一个根,随后设\ ...
- NOIP2013普及组 T2 表达式求值
OJ地址:洛谷P1981 CODEVS 3292 正常写法是用栈 #include<iostream> #include<algorithm> #include<cmat ...
- [NOIP2017普及组]跳房子(二分,单调队列优化dp)
[NOIP2017普及组]跳房子 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 nn 个格子, ...
- 「LOJ 6373」NOIP2017 普及组题目大融合
NOIP2017 普及组题目大融合 每个读者需要有某个后缀的书,可以暴力map,复杂度\(o(9*nlog(n))\),也可以反串建trie树,复杂度\(o(9*n)\). 故可以求出需要的最少的RM ...
- P3956 [NOIP2017 普及组] 棋盘
P3956 [NOIP2017 普及组] 棋盘 题目 题目描述 有一个 m×m 的棋盘,棋盘上每一个格子可能是红色.黄色或没有任何颜色的.你现在要从棋盘的最左上角走到棋盘的最右下角. 任何一个时刻,你 ...
- NOIP2017普及组比赛总结
期中考总结&NOIP2017总结 2017年11月11日,我第二次参加NOIP普及组复赛.上一年,我的得分是250分,只拿到了二等奖.我便把目标定为拿到一等奖,考到300分以上. 早上8点多, ...
- noip2017普及组
过了这么久才来写博客,也是我这么一段时间都很低迷吧.... 老实来说,今年应该是要打提高组的...可还是打了普及组... 其实最猥琐的还是我连普及都写挂了,作为一个学了两年的人,图论,进阶dp都写过的 ...
- NOIP2008 普及组T2 排座椅 解题报告-S.B.S
题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳.同学 ...
随机推荐
- 数值的整数次方(python)
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. # -*- coding:utf-8 -*- class Solution: ...
- 对话框 AlterDialog
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("尊敬的用户"); bu ...
- ES3之cookie
一 cookie的作用域由文档源(domain)和文档路径(path)决定. 当前页面的脚本只能操作:当前源的当前路径的cookie.当前源的父路径的cookie. 向服务器发送请求时,请求头(Req ...
- vue-webpack项目本地开发环境设置代理解决跨域问题
前言: 一般跨域问题只要后端配置好的话,是不需要前端做处理的,但也不能保证你遇到的所有后端都能很好的处理这个问题,这个时候可能就需要前端设置代理解决这个问题了. 配置方法: 1. config/ind ...
- day 18 类,对象
类,对象: 类 具有相似功能的一类事物,人类,犬类,猫类等等. 对象: 类的具体表现 面向对象: 1.第一个优点:面向对象是一类相似功能函数的集合体 更清晰化,更规范化 class LoginHand ...
- Python数据分析--Pandas知识点(一)
本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘 1. 重复值的处理 利用drop_duplicates()函数删除数据表中重复多余的记录, 比如删除重复多余的ID. im ...
- setTimeout设置为0的意义
今天再看 Promise 代码时,有个地方用到了setTimeOut函数,但是第2个参数设为0,顿时懵逼了,这是啥意思? function resolve(newValue) { value = ne ...
- Python中list,tuple,dict,set的区别和用法(转)
原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...
- 我的第一个WCF程序
写WCF,VS需要一管理员身份呢启动,否则服务无法访问. model层 using System; using System.Runtime.Serialization; namespace MyMo ...
- sqlserver window身份验证时切换账户的快捷键
sqlserver window身份验证时切换账户的快捷键:ctrl+alt_del