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对同学上课时会交头接耳.同学 ...
随机推荐
- jquery mobil 和页面适应
<meta name="viewport" content="width=device-width" />
- 二叉树的镜像(python)
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...
- 源码调用ffmpeg库时,需要注意接口为C接口
即引用相关头文件时候,要使用extern "C"{}来包含. 关于extern "C"{}的详情,参考:http://www.cnblogs.com/skyne ...
- Attention Please
关于BJJ与Matlab的学习时间安排在五六日晚间: 其余一切重心在学术!
- Oracle触发器用法实例详解
转自:https://www.jb51.net/article/80804.htm. 本文实例讲述了Oracle触发器用法.分享给大家供大家参考,具体如下: 一.触发器简介 触发器的定义就是说某个条件 ...
- tight
tight - 必应词典 美[taɪt]英[taɪt] adv.紧紧地:牢固地 adj.牢固的:紧的:不松动的:难解开的 n.紧身衣 网络紧身的:紧密的:密封的 变形比较级:tighter:最高级:t ...
- POJ 1177 Picture(线段树周长并)
描述 A number of rectangular posters, photographs and other pictures of the same shape are pasted on ...
- Django的Rbac介绍2
上一篇博客我们记录了一下Django中使用Rbac,但是上一篇博客中的方法有一点不好,就是,因为我要在html文件中控制:如果用户有某个权限,则显示这个权限所代表的按钮,但是我现在只有1张表的增删改查 ...
- Django的Rbac介绍1
1.django的权限管理叫做RBAC 我们在百度上查看RBAC的概念如下 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的 ...
- 鼠标移上去触动hover致使div向上移动几个相素(动画transition轻轻的移动)