题解 P3955 【图书管理员】

Maxrage

2019-10-13 18:07:00

Solution

# 题解 P3955 【图书管理员】~~(论图书管理员有多懒)~~ --- ## Some ideas ~~~ 首先,读入并存入数组,排列。取余查找*,有就输出**,无输出-1 * 用循坏!千万别用pow函数。虽然洛谷上pow能过,但一个系统一个数据。别的网站由于实数整数原因,过不了!!! **因为先前已经排列,所以没必要再去找。一来浪费时间,二来不会输出最小的 ~~~ $\color{white}\colorbox{white}{\text{第三篇题解,管理大大求过!!!}}$ ## Code ```cpp #include<bits/stdc++.h> using namespace std; int n,q,ans,noww; int a[1005],b[1005],c[1005]; int main() { scanf("%d%d",&n,&q); for(int i=1;i<=n;i++) scanf("%d",&a[i]);//读并存入 sort(a+1,a+n+1);//排它!!! for(int i=1;i<=q;i++) scanf("%d%d",&b[i],&c[i]);//读入 for(int i=1;i<=q;i++) { ans=-1;noww=1;//重新定义,避免之前的影响这一次运算 //while(b[i]--)noww*=10; while(c[i]>=noww)noww*=10;/*两种循坏方式*/ for(int j=1;j<=n;j++) if(a[j]%noww==c[i])//取余判断 { ans=a[j]; break; } printf("%d\n",ans);//输出 } return 0; } ``` [最后过了](https://www.luogu.org/record/25150844)