题解 P3955 【图书管理员】

白桦树

2017-11-14 19:34:23

Solution

发一个更简单的解法 看到题解有些复杂了,其实可以不用字符串处理,不用取模求每一位 用时: 0ms / 内存: 2164KB ```cpp #include<iostream> #include<cstdio> #include<algorithm> #define maxn 1005 using namespace std; int n,q,l,code;//l为需求码长度,code为需求码 int a[maxn];//存储图书馆编号 int mod[9]={0,10,100,1000,10000,100000,1000000,10000000,100000000};//方便取模,mod[i]表示一个数取后i位要模多少 int judge(){//函数,返回找到的编号 for(int i=1;i<=n;i++){ if(a[i]%mod[l]==code) return a[i];//如果第i个图书编码的后l位正好等于code,那么就找到了对应的数 } return -1; } int main(){ cin>>n>>q; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+1+n);//STL快排,从小到大排序,确保找到的是最小的数 for(int i=1;i<=q;i++){ cin>>l>>code; cout<<judge()<<endl; } return 0; } ```