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们轻喷

    毕竟我还是个蒟蒻

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

  • 相关阅读:
    Python DB API 连接数据库
    PHP base64多图片上传
    Linux vim编写程序时出现高亮字符,如何取消?
    CDN,内容分发网络。
    MySQL随机取数据
    tp5 快速接入扫码支付
    tp5定时器
    清空测试数据
    Centos Crontab查看状态和开启
    select2 使用
  • 原文地址:https://www.cnblogs.com/JinLeiBo/p/9304457.html
Copyright © 2011-2022 走看看