弱鸡萌新再次求助(只过了样例和点1)

P3955 [NOIP2017 普及组] 图书管理员

听取OLE声一片 @ 2020-10-14 13:53:30

rt

#include<iostream>
using namespace std;
int wooo(int x,int y)
{
    int ans=1;
    for(int i=1;i<=y;i++) ans*=x;
    return ans;
}
int main()
{
    int n,q;
    long long a[1005];
    cin>>n>>q;
    for(int i=0;i<n;i++) cin>>a[i];
    long long b[1005],c[1005],d[1005];
    for(int i=0;i<=q;i++) d[i]=-1;
    for(int i=0;i<q;i++) cin>>b[i]>>c[i];
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<q;j++)
            if(a[i]%wooo(10,b[j])==c[j]) d[j]=a[i];
    }
    for(int i=0;i<q;i++) cout<<d[i]<<endl;
}

by Imy_bisLy @ 2020-10-14 14:38:02

没读题好评

你图书编号排个序不咋 还有你写的函数返回类型不应该是long long 吗 不建议循环从0 开始输入……太难受了

具体哪写错了我给你注释了


#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long  wooo(long long x,long long  y)
{
    long long  ans=1;
    for(int i=1;i<=y;i++) ans*=x;
    return ans;
}
int main()
{
    int n,q;
    long long a[1005];
    cin>>n>>q;
    for(int i=0;i<n;i++) cin>>a[i];
    sort(a+0,a+n);// c++自带快排需要调用   include<algorithm> 库 
    long long b[1005],c[1005],d[1005];
    for(int i=0;i<q;i++) d[i]=-1;
    for(int i=0;i<q;i++) {
        cin>>b[i]>>c[i];
    } 
    /*for(int i=0;i<n;i++)
    {
        for(int j=0;j<q;j++)
            if(a[i]%wooo(10,b[j])==c[j]) d[i]=a[i];
    }*///你循环写反了吧 
    for(int i = 0 ; i <q ; i++){//第i个人 
        for(int j = 0 ; j < n; j++){ //第j个本图书 
            if(a[j] % wooo(10,b[i]) == c[i]){
                d[i] = a[j];
                break;  //防止后面有能成立的 
            }

        } 
    } 
    for(int i=0;i<q;i++) cout<<d[i]<<endl;
}

by 听取OLE声一片 @ 2020-10-15 13:33:56

@wangzedong233 过了!!!www感谢大佬


|