• 【NOIP2017】图书管理员-C++


    描述
    
    图书馆中每本书都有一个图书编码,可以用于快速检索图书,这个图书编码是一个 正整数。
    
    每位借书的读者手中有一个需求码,这个需求码也是一个正整数。如果一本书的图 书编码恰好以读者的需求码结尾,那么这本书就是这位读者所需要的。
    
    小 D 刚刚当上图书馆的管理员,她知道图书馆里所有书的图书编码,她请你帮她写 一个程序,对于每一位读者,求出他所需要的书中图书编码最小的那本书,如果没有他 需要的书,请输出-1。
    
    
    输入
    输入第一行,包含两个正整数 n 和 q,以一个空格分开,分别代表图书馆里书的数量和读者的数量。
    
    接下来的 n 行,每行包含一个正整数,代表图书馆里某本书的图书编码。
    
    接下来的 q 行,每行包含两个正整数,以一个空格分开,第一个正整数代表图书馆里读者的需求码的长度,第二个正整数代表读者的需求码。
    
    
    输出
    输出有 q 行,每行包含一个整数,如果存在第 i 个读者所需要的书,则在第 i行输出第 i 个读者所需要的书中图书编码最小的那本书的图书编码,否则输出-1。
    
    
    输入样例 1 
    
    5 5
    2123
    1123
    23
    24
    24
    2 23
    3 123
    3 124
    2 12
    2 12
    输出样例 1
    
    23
    1123
    -1
    -1
    -1
    提示
    
    【输入输出样例 1 说明】
    
    第一位读者需要的书有 2123、1123、23,其中 23 是最小的图书编码。第二位读者需要的书有 2123、1123,其中 1123 是最小的图书编码。对于第三位,第四位和第五位读者,没有书的图书编码以他们的需求码结尾,即没有他们需要的书,输出-1。
    
    【数据规模与约定】
    
    对于 20%的数据,1 ≤ n ≤ 2。另有 20%的数据,q = 1。
    
    另有 20%的数据,所有读者的需求码的长度均为 1。
    
    另有 20%的数据,所有的图书编码按从小到大的顺序给出。
    
    对于 100%的数据,1 ≤ n ≤ 1,000,1 ≤ q ≤ 1,000,所有的图书编码和需求码均不超过 10,000,000。
    

    这道题直接一波暴力排序+结构体+函数询问模拟一遍就好了,具体看代码;

    AC代码:

    #include<bits/stdc++.h>
    using namespace std;
    struct book
    {
        int w;
        int num;
    }a[1000+1];
    int i,j,k,l,n,m,b[1000+1];
    int ask(int x,int a,int y)
    {
        int sz=a;
        int w=1;
        do
    	{
            w*=10;
            sz--;
        }while(sz!=0);
        if((x%=w)==y)return 1;
        else return 0;
    }
    int main()
    {
          cin>>n>>m;
          for(i=1;i<=n;i++){
              cin>>b[i];
          }
          sort(b+1,b+n+1);
          for(i=1;i<=m;i++)
    	  {
              cin>>a[i].w>>a[i].num;
          }
          for(i=1;i<=m;i++)
    	  {
              for(j=1;j<=n;j++)
    		  {
                  k+=ask(b[j],a[i].w,a[i].num);
                  if(ask(b[j],a[i].w,a[i].num)==1)break;
              }
              if(k==0)cout<<"-1"<<endl;
              else cout<<b[j]<<endl;
              k=0;
          }
          return 0;
    }
    

    ov.

    个人博客地址: www.moyujiang.com 或 moyujiang.top
  • 相关阅读:
    markdown 书写文档的框架
    使用snap
    如何让pandas表格直接转换为markdown表格
    我们需要怎样去写博客
    jupyter notebook 远程访问
    安装tensorflowGPU版本
    Data Science Project
    使用python处理地理数据:Geopandas
    python移植环境
    Jupyter notbook& REVEAL.JS& nbconvert 使用jupyter notebook制作slides
  • 原文地址:https://www.cnblogs.com/moyujiang/p/11167779.html
Copyright © 2020-2023  润新知