题目:[NOIP2017]图书管理员 (nowcoder.com)
#include<bits/stdc++.h>
#define int long long
#define PII pair<int,int>
#define LL__int 128
using namespace std;
const int N=2e5+10,M=1e3+10,mod=998344353,INF=0x3f3f3f3f;
int a[N],b[N];
//num表图书馆的编码,need表需求编码,sum表需求位数
int n,q,num[1010],need,sum;
inline void FIND(int NEED,int SUM)
{
for(int i=0;i<n;i++)
if(num[i]%SUM==NEED){
printf("%d\n",num[i]);
return ;
}
printf("-1\n");
}
signed main()
{
//std::ios::sync_with_stdio(false);
//std::cin.tie(NULL);
scanf("%d%d",&n,&q);
for(int i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
sort(num,num+n);
for(int i=0;i<q;i++)
{
scanf("%d%d",&sum,&need);
FIND(need,pow(10,sum));
}
return 0;
}
从这道题学到的东西:
- 取余的灵活运用
- sort()函数的正确使用,sort(num,num+n);括号内的数相差需排序的数目
- scanf("%d%d",&n,&q); 这个输入,刚开始一直纠结没有空格,然后发现有没有空格是自己决定的,你可以输入为“12”,也可以输入为“1 2”。
- 这个题找错找了很久,发现是输入格式中 &这个忘写,耽误了很长时间。