90分求助!!!!

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

xuchong123321 @ 2022-07-22 13:40:02


#include<bits/stdc++.h>
using namespace std;
int a,b,c[10000],d[10000],e[10000],f[10000],i,j;/*5 5 
                                        2123 
                                        1123 
                                        23 
                                        24 
                                        24 
                                        2 23 
                                        3 123 
                                        3 124 
                                        2 12 
                                        2 12*/
bool panduan()
{
    int a=c[j];
    int b=e[i];
    if(d[i]==1&&a%10==b&&(f[i]>c[j]||f[i]==0))
    {
        return true;
    }
    else
    if(d[i]==2&&a%100==b&&(f[i]>c[j]||f[i]==0))
    {
        return true;
    }
    else
    if(d[i]==3&&a%1000==b&&(f[i]>c[j]||f[i]==0))
    {
        return true;
    }
    else
    if(d[i]==4&&a%10000==b&&(f[i]>c[j]||f[i]==0))
    {
        return true;
    }
    else
    if(d[i]==5&&a%100000==b&&(f[i]>c[j]||f[i]==0))
    {
        return true;
    }
    return false;
}
int main()
{
    cin>>a>>b;
    for(i=1;i<=a;i++)
    {
        cin>>c[i];
    }
    for(i=1;i<=b;i++)
    {
        cin>>d[i];cin>>e[i];
    }
    for(i=1;i<=b;i++)
    {
        for(j=1;j<=a;j++)
        {
            if(panduan())
            {
                f[i]=c[j];
            }
        }
    }
    for(i=1;i<=b;i++)
    {
        if(f[i]==0)
            cout<<-1<<endl; 
        else
        cout<<f[i]<<endl;   
    }
    return 0;
} 

by cuiyulin @ 2022-07-22 13:43:48

啊这


by mirance2025 @ 2022-07-26 17:20:42

a[],b[],c[],d[]是什么


by YDnvhai @ 2022-08-24 14:53:15

看一下数据范围对于

“对于 100\%100%的数据, 1 ≤ n ≤ 1,000,1 ≤ q ≤ 1,0001≤n≤1,000,1≤q≤1,000,所有的图书编码和需求码均 不超过 10,000,000” , 所以第一是数组可以改成1010;第二,也是关键,你在判断的时候值枚举到了100000,后面再加两个判断,(6,1000000和7,10000000),就可以了,(PS:应该还需要加个排序,用sort就可以了)


by YDnvhai @ 2022-08-24 14:54:08

@xuchong123321


by xuchong123321 @ 2022-08-24 15:41:06

AC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


|