我是靠谱客的博主 坚定世界,最近开发中收集的这篇文章主要介绍NOIP 2017 普级组 图书管理员 librarian,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

这里写图片描述
这里写图片描述
这里写图片描述

题解:

为啥要用字符串,啥,字符树?不存在的。
你看看数据,不超过10^7,果断暴力
预处理出10^1,10^2,10^3……10^8
给出需求码长度x,跟需求码y
你就把所有的编码mod 10^x 的值看是否等于y
在满足的数中找最小值即可。

时间复杂度:O(NQ)

var
    a:array [0..1001] of longint;
    num:array [1..8] of longint;
    n,q:longint;

function min(aa,bb:longint):longint;
begin
    if aa<bb then exit(aa);
    exit(bb);
end;

procedure init;
var
    i:longint;
begin
    readln(n,q);
    for i:=1 to n do
      readln(a[i]);
    num[1]:=10;
    for i:=2 to 8 do
      num[i]:=num[i-1]*10;
end;

procedure main;
var
    cmin,i,j,x,y:longint;
begin
    for i:=1 to q do
      begin
          readln(x,y);
          cmin:=maxlongint;
          for j:=1 to n do
            if a[j] mod num[x]=y
               then cmin:=min(cmin,a[j]);
          if cmin=maxlongint
             then writeln('-1')
             else writeln(cmin);
      end;
end;

begin
      init;
      main;
end.

最后

以上就是坚定世界为你收集整理的NOIP 2017 普级组 图书管理员 librarian的全部内容,希望文章能够帮你解决NOIP 2017 普级组 图书管理员 librarian所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部