zoukankan      html  css  js  c++  java
  • 洛谷p3955 图书管理员(NOIP2017 t2)

    蒟蒻的最后一篇pas题解。。。目前转c++ ing

    回顾了一下,发现c++的string真的好繁啊(主要我这个蒟蒻太菜不会用)

    还是pas的string操作简洁

    做法

    我这种蒟蒻不像别的dalao,懒得搞长度就直接扔了。。

    先把图书编码排个序,数据范围小就直接暴力选排

    接着判读书编码的后length(读者编码)长度的字符串是否与读者编码相等

    如果相等就输出,并且把k赋值为1,不相等继续搞

    最后判一下如果k=0就输出-1

    注意:

    1.每次做完k变成0;

    2.copy(s,x,y)是指在s中从x位开始截取y位,不是从x截到y;

     1 var n,m,i,j,k,l:longint;
     2     a:array[1..1000] of string;
     3     b:array[1..1000] of string;
     4     c,d:char;
     5     s:string;
     6 begin
     7   readln(n,m);
     8   for i:=1 to n do readln(a[i]);
     9   for i:=1 to m do
    10   begin
    11     readln(s);
    12     b[i]:=copy(s,3,length(s));
    13   end;
    14   for i:=1 to n-1 do
    15     for j:=i+1 to n do
    16   if (length(a[i])>length(a[j]))or((a[i]>a[j])and(length(a[i])=length(a[j]))) then
    17     begin
    18       s:=a[i];
    19       a[i]:=a[j];
    20       a[j]:=s;
    21     end;
    22   for i:=1 to m do
    23   begin
    24     k:=0;
    25     for j:=1 to n do
    26     if k=0 then
    27     begin
    28       if length(a[j])>=length(b[i]) then
    29       begin
    30         if copy(a[j],length(a[j])-length(b[i])+1,length(b[i]))=b[i] then
    31         begin
    32           writeln(a[j]);
    33           k:=1;
    34         end;
    35       end;
    36     end;
    37     if k=0 then writeln(-1);
    38   end;
    39 end.

    请dalao们轻喷

    毕竟我还是个蒟蒻

    要是有什么优化也请在评论里指出

  • 相关阅读:
    dfs模板
    24点
    个人阅读三
    个人阅读作业2:关于项目经历的心得
    代码复审
    Pair Project1:电梯控制程序
    第二次个人项目——阅读经典教材
    THE First Individual Project
    个人阅读作业3
    个人阅读作业2
  • 原文地址:https://www.cnblogs.com/JinLeiBo/p/9304457.html
Copyright © 2011-2022 走看看