20分求调......
查看原帖
20分求调......
800322
Zouzhuoxuan楼主2022/12/1 12:45

#1 TLE1\ TLE

#2 TLE2\ TLE

#3 TLE3\ TLE

#4 TLE4\ TLE

#5 AC5\ AC

#include<bits/stdc++.h>
using namespace std;
struct person
{
    long long unsigned score;
    string name;
}a[100005];
void ko()
{
    for(int i=0;i<=100000;i++)
    {
        a[i].name="-none";
        a[i].score=-1;
    }
}
bool cmp(string aa,string b)
{
    if(aa.length()!=b.length()) return false;
    for(int i=0;i<aa.length();i++) if(aa[i]!=b[i]) return false;
    return true;
}
bool cha1(string s,int in,int cnt)
{
    for(int i=1;i<=cnt;i++)
    {
        if(cmp(a[i].name,s))
        {
            a[i].score=in;
            return false;
        }
    }
    a[cnt+1].name=s,a[cnt+1].score=in;
    return true;
}
long long unsigned found1(string s,int cnt)
{
    for(int i=1;i<=cnt;i++) if(cmp(s,a[i].name)) return i;
    return -1;
}
bool found2(string s,int cnt)
{
    for(int i=1;i<=cnt;i++)
    {
        if(cmp(a[i].name,s))
        {
            a[i].name="-none",a[i].score=-1;
            return true;
        }
    }
    return false;
}
int main()
{
    ko();
    int i,n,in1,in3,cnt=0,sum=0;
    string in2;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        cin>>in1;
        if(in1==1)
        {
            cin>>in2>>in3;
            if(cha1(in2,in3,cnt)) cnt++,sum++;
            printf("OK\n");
        }
        else if(in1==2)
        {
            cin>>in2;
            if(found1(in2,cnt)==-1) printf("Not found\n");
            else printf("%d\n",a[found1(in2,cnt)].score);
        }
        else if(in1==3)
        {
            cin>>in2;
            if(!found2(in2,cnt)) printf("Not found\n");
            else
            {
                printf("Deleted successfully\n");
                sum--;
            }
        }
        else if(in1==4)
        {
            printf("%d\n",sum);
        }
    }
}

((开了O2)O2)

2022/12/1 12:45
加载中...