40分求助!!!

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

renzhanwen @ 2024-08-02 14:47:07


#include<bits/stdc++.h>
using namespace std;
int n,q;
string a[10000];
int main()
{
    cin>>n>>q;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=1;i<=n;i++)
        for(int j=2;j<=n;j++)
        {
            if(a[j-1].size()>a[j].size())
                swap(a[j-1],a[j]);
            if(a[j-1].size()==a[j].size())
                for(int y=0;y<a[j].size();y++)
                    if(a[j-1][y]>a[j][y])
                    {
                        swap(a[j-1],a[j]);
                        break;
                    }
        }
    while(q--)
    {
        int k;
        string b;
        bool s=true;
        cin>>k>>b;
        for(int i=1;i<=n;i++)
        {
            if(a[i].size()<b.size())
                continue;
            s=true;
            int t=a[i].size()-1;
            for(int j=b.size()-1;j>=0;j--)
            {
                if(a[i][t]!=b[j])
                {
                    s=false;
                    break;
                }
                t--;
            }
            if(s==true) 
            {
                cout<<a[i];
                break;
            }
        }
        if(s==false)
            cout<<"-1";
        cout<<endl;
    }
    return 0;
}

by _liujunming_ @ 2024-08-05 15:48:09

这是我的代码:

#include<bits/stdc++.h>
using namespace std;
string book[1005];
bool is(string person,string books)
{
    if(person.size()>books.size())return false;
    string t=person;
    for(int i=person.size()-1;i>=0;i--)
        t[person.size()-1-i]=person[i];
    string m=books;
    for(int i=books.size()-1;i>=0;i--)
        m[books.size()-1-i]=books[i];   
    for(int i=0;i<t.size();i++)
    {
        if(t[i]!=m[i])
            return false;
    }
    return true;
}
int main()
{
    int a,b;
    cin>>a>>b;
    for(int i=1;i<=a;i++)cin>>book[i];
    string ps;
    for(int i=1;i<=b;i++)
    {
        int psb;
        cin>>psb;
        cin>>ps;
        bool k=false;
        string t="99999999";
        for(int j=1;j<=a;j++)
        {
            if(is(ps,book[j]))
            {
                k=true;
                if(t.size()>book[j].size())t=book[j];
                else if(t.size()==book[j].size()&&t>book[j])t=book[j];
            }
        }
        if(k)cout<<t<<"\n";
        else cout<<"-1\n";
    }
    return 0; 
}

如果你能看到的话麻烦给蒟蒻个关注吧


by JeiMin @ 2024-08-05 21:10:50

@liujunming 请不要把题解发在讨论区哦


|