A_Big_Jiong @ 2018-08-04 22:35:38
献上本蒟蒻的代码
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1010;
int n,q;
int book[maxn],reader[maxn],l[maxn];
int cmp(int x,int y){
return x<y;
}
int main(){
scanf("%d%d",&n,&q);
for(int i=0;i<n;i++)
scanf("%d",&book[i]);
for(int i=0;i<q;i++)
scanf("%d%d",&l[i],&reader[i]);
sort(book,book+n,cmp);
for(int i=0;i<n;i++){
int k=1;
for(int p=0;p<l[i];p++)
k*=10;
int flag=0;
for(int j=0;j<q;j++)
if(reader[i]==book[j]%k){
printf("%d\n",book[j]);
flag=1;
break;
}
if(flag==0){
printf("-1\n");
}
}
return 0;
}
本人只是个初学者,1、2、3、4都WA,真的不知道为什么,求各位dalao改善。
感谢各位。
by Smile_Cindy @ 2018-08-04 22:53:29
@zcj040323
#include <bits/stdc++.h>
#define N (int)(1e3+7)
using namespace std;
int a[N];
int main()
{
//freopen("test.txt","r",stdin);
int n,q;
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++)
{
int x,y;
scanf("%d%d",&x,&y);
bool pd=0;
for(int i=1;i<=n;i++)
{
for(int p=10;p<=1e8;p*=10)
{
if(a[i]%p==y)
{
printf("%d\n",a[i]);
pd=1;
break;
}
}
if(pd)break;
}
if(!pd)puts("-1");
}
return 0;
}
不能先乘好再查询 得边乘边查询
by A_Big_Jiong @ 2018-08-05 10:27:24
@Alpha
感谢dalao,我的程序调试中
by A_Big_Jiong @ 2018-08-05 10:53:54
@Alpha
感谢dalao,本题已AC
by xzy062609 @ 2018-10-10 13:09:52
using namespace std; int m[8]={1,10,100,1000,10000,100000,1000000,10000000}; int n,q; int b[1005]; int main() { cin>>n>>q; for(int i=0;i<n;i++) { cin>>b[i]; } sort(b,b+n); while(q--) { int l,n; cin>>l>>n; int a=-1; for(int i=0;i<n;i++) { int g=b[i]%m[l]; if(g==n) { a=b[i]; break; } } cout<<a<<endl; } return 0; }