【题解】P3955 [NOIP2017 普及组] 图书管理员
collegiate · · 题解
这题看着挺简单的,其实也挺简单的。
我们用
那么每次枚举书的编码,求
那么怎么求
最后还要特判一下,是否输出
#include<bits/stdc++.h>
using namespace std;
const int N=5000+5;
const int M=1e9+5;
int book[N],len[N],num[N];
int main(){
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++) cin>>book[i];
for(int i=1;i<=q;i++){
cin>>len[i]>>num[i];
int cnt=pow(10,len[i]);
int minn=M;
for(int j=1;j<=n;j++){
if(book[j]%cnt==num[i] && book[j]<minn){
minn=book[j];
}
}
if(minn!=M) cout<<minn<<endl;//特判
else cout<<-1<<endl;
}
return 0;
}