LUOGU P3955题解(NOIP 2017第二题)
来源:互联网 发布:js文件格式化工具 编辑:程序博客网 时间:2024/06/01 08:31
题目描述:
图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数。 每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图 书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。 小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写 一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他 需要的书,请输出-1。
今年普及组的第二题,较往年来说,难度大为下降。
首先来看一下算法:
这是一道纯模拟,先用一个b数组存放图书馆里面的书,在定义结构体,存放顾客所需码和所需码的位数。因为神奇的CCF为我们提供了所需码的位数,我们可以直接按位相除,求出尾数,再进行判断。
注意:
1.在进行判断最小值的时候,建议定义常量来进行比较(本蒟蒻今年犯这个错丢了80分)。
2.可以选择在读入b数组的时候就排一遍序(可以不排,但是不稳定)
代码如下:
#include<iostream>#include<cstdio>//#include<algorithm>using namespace std;//const int minn=1e+9; 比较最小值//int res; 存放答案int b[10001]; //存放图书馆书目的编码struct cost{ //顾客的所需码和所需码的长度 int s; //所需码 int num; //长度}a[101];/*int comp(int a,int b){return a<b;}*/int main(){ int n,q; scanf("%d %d",&n,&q); //建议用scanf的时候打空格 for(int i=1;i<=n;i++) scanf("%d",&b[i]); //读入//sort(b+1,b+n+1,comp); for(int i=1;i<=q;i++) scanf("%d%d",&a[i].s,&a[i].num); int c,d,e; int minn=99999999; bool t=true; //判断是否有出现 for(int i=1;i<=q;i++) //q位顾客循环q次 { for(int j=1;j<=n;j++) //每一个都试一次 { c=b[j]; d=a[i].s; e=a[i].num; //c,d,e 暂时存放 while(d!=0) { if(c%10==e%10) //如果最后一位都相等 { c/=10; //继续判断 e/=10; d--; t=true; //寻找到答案 } else { t=false; //否则的话不是答案 break; //跳出 } } if(t==true) //如果有答案 { if(b[j]<minn) //并且小于minn值 minn=b[j]; //更新minn值 }*/ else continue; //否则继续查找 } if(minn!=99999999) //当全部找完是,如果minn不为原值的话, 就说明找到了一个值 { printf("%d\n",minn); //输出现在的最小值 t=false; minn=99999999; //为下一次查找回复原值 } else printf("-1\n"); //否则就是没找到 } fclose(stdin); fclose(stdout); return 0;}
阅读全文
0 0
- LUOGU P3955题解(NOIP 2017第二题)
- LUOGU P3954题解(NOIP 2017普及组第一题)
- 【NOIP模拟题】【DP】2016.11.10 第二题题解
- 【NOIP模拟题】【图论】2016.11.18 第二题 心 题解
- 2012NOIP普级组第二题--寻宝(参考洛谷题解)
- 2013NOIP普级组第二题--表达式的值(参考洛谷题解)
- 2014NOIP普级组第二题--比例简化(参考洛谷题解)
- 2016NOIP普级组第二题--回文日期(参考洛谷题解)
- Luogu 1074(DFS)(NOIP 2009)
- Luogu 2679(dp)(NOIP 2015)
- luogu P1044 栈(NOIP 2003)
- NOIP 2017题解(更新ing)
- NOIP 2017 Day1 题解?
- NOIP 2017 Day2 题解?
- NOIP模拟题题解
- 邮递员送信(luogu 1629)题解
- 序列合并(luogu 1631)题解
- LUOGU P2058 海港题解(附代码)
- 【软考学习】设计模式——建造者模式
- Spring Boot 整合mybatis 如何使用多数据源
- 图的生成树和最小生成树
- TextView 高亮字体局部点击
- 第三章 继承
- LUOGU P3955题解(NOIP 2017第二题)
- 《Linux基础》实验六- Telnet服务器安装、配置与测试
- 如何把ER模型转换为关系模型
- LightsService分析 --- JNI分析
- python编程中的if __name__ == 'main': 的作用和原理
- SQL语句实现多张表的连接查询
- windows下使用hexo和github配置个人博客
- eslint 的一些规则
- html超链接的4种状态