1 条题解

  • 0
    @ 2022-7-29 19:55:03

    二分即可

    #pragma GCC optimize(3,"Ofast","inline")
    #include<bits/stdc++.h>
    using namespace std;
    long i,n,t;
    string c;
    struct p{
       long b;
       string a;
    }s[10005];
    long rf(string c)
    {
       long l=1,r=n,mid;
       while(l<=r)
       {
          mid=(l+r)/2;
          if(s[mid].a==c)return s[mid].b;
          if(s[mid].a>c)r=mid-1;
          else l=mid+1; 
       }
    }
    long read()
    {
    	long x=0,f=1;
    	char ch=getchar();
    	while(ch<'0'||ch>'9'){
    		if(ch=='-')f=-1;
    		ch=getchar();
    	}
    	while(ch>='0'&&ch<='9')
    	{
    		x=x*10+(ch-'0');
    		ch=getchar();
    	}
    	return x*f;
    }
    void write(long x) {
    	if(x<0){
    		putchar('-');
    		write(-x);
    		return;
    	}
    	if(x>=10)write(x/10);
    	putchar(x%10+'1');
    }
    bool cmp(p x,p y)
    {
       return x.a<y.a;
    }
    int main()
    {
       n=read();
       for(i=1;i<=n;i++)cin>>s[i].a,s[i].b=read();
       sort(s+1,s+n+1,cmp);
       t=read();
       while(t--)
       {
          cin>>c;
          write(rf(c));
          puts("");
       }
    	return 0;
    }
    • 1

    信息

    ID
    117
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    (无)
    递交数
    80
    已通过
    29
    上传者