han1219 @ 2024-07-30 21:48:35
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1000000];
bool flag=1;
long long p(int x){
return pow(10,x);
}
struct c{
long long l,x;
}b[1000000];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>b[i].l>>b[i].x;
}
sort(a+1,a+n+1);
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
flag=1;
if(a[j]%p(b[i].l)==b[i].x){
cout<<a[j]<<endl;
flag=0;
break;
}
}
}
return 0;
}
40pts 帮忙调一下
by x_Toi_QiQi @ 2024-08-08 20:33:20
@han1219
#include<bits/stdc++.h>
using namespace std;
long long a[100005],n,m,x,l,mw,j,i;
int bs[9]={0,10,100,1000,10000,100000,1000000,10000000,100000000};
int main(){
cin>>n>>m;
for(i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+n+1);
for(i=1;i<=m;i++){
cin>>l>>x;
for (j=1;j<=n;j++){
mw=a[j]%bs[l];
if(mw==x){
cout<<a[j]<<endl;
break;
}
}
if(j>n) cout<<"-1"<<endl;
}
return 0;
}
1.其实结构体根本不需要,边输入边处理就可。
2.pow可以改为数组,更省时间。
by han1219 @ 2024-08-09 09:42:53
@tang_Simon 谢谢