zoukankan      html  css  js  c++  java
  • 金中欢乐赛 C题

    题目传送门

    这道题 hash就可以写了 弄了半天有点智障 强行压一压就okay了的说

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int M=150007,mod=23333333;
    int read(){
        int ans=0,f=1,c=getchar();
        while(c<'0'||c>'9'){if(c=='-') f=-1; c=getchar();}
        while(c>='0'&&c<='9'){ans=ans*10+(c-'0'); c=getchar();}
        return ans*f;
    }
    int first[mod],tot,next[mod],sum;
    struct node{int v,next,pos;}e[M],q[M];
    int n,m,k,a[M];
    int gethash(int x){
        int w=x%mod;
        for(int i=first[w];i;i=e[i].next) if(e[i].v==x) return i;
        tot++; e[tot].v=x; e[tot].next=first[w]; first[w]=tot;
        return tot;
    }
    int push_hash(int x){
        int w=x%mod;
        for(int i=first[w];i;i=e[i].next) if(e[i].v==x) return i;
        return 0;
    }
    void insert(int a,int b){sum++; q[sum].v=b; q[sum].next=next[a]; next[a]=sum;}
    int main()
    {
        n=read(); m=read(); 
        for(int i=1;i<=n;i++) a[i]=read();
        for(int i=n;i;i--) insert(gethash(a[i]),i);
        for(int i=1;i<=m;i++){
            k=push_hash(read());
            if(!k||!next[k]) printf("-1 ");
            else printf("%d ",q[next[k]].v),next[k]=q[next[k]].next;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    2. Git基础命令
    1.Git基础配置
    demo_49 大结局
    demo_48 上传图片实现
    demo_47 反馈图片选择功能实现
    demo_46 问题反馈页面实现
    gitlab +jenkins
    面试分析
    面试基础 一文件操作和程序进程
    man 命令帮助文档的使用
  • 原文地址:https://www.cnblogs.com/lyzuikeai/p/7080084.html
Copyright © 2011-2022 走看看