zoukankan      html  css  js  c++  java
  • 哈希模板

    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    const int maxn=11111;
    const int maxh=10000019;
    int head[maxh];
    int next[maxh];
    long long st[maxn];
    
    void hash_init()
    {
        memset(head,0,sizeof(head));
    }
    
    int hash(long long p,int prime=10000019)
    {
        int h;
        //hash操作
        h=p%prime;
        return h;
    }
    
    bool add_hash(int s)
    {
        int h=hash(st[s]);
        int u=head[h];
        while(u)
        {
            //if (memcmp(st[u],st[s],sizeof(st[s]))==0) return 0;
            //if (strcmp(st[u],st[s])==0) return 0;
            if (st[u]==st[s]) return 0;
            u=next[u];
        }
        next[s]=head[h];
        head[h]=s;
        return 1;
    }
    
    bool search_hash(long long p)
    {
        int h=hash(p);
        int u=head[h];
        while (u)
        {
            //if (memcmp(st[u],p,sizeof(st[u]))==0) return 1;
            //if (strcmp(st[u],str)==0) return 1;
            if (st[u]==p) return 1;
            u=next[u];
        }
        return 0;
    }
    




  • 相关阅读:
    164-268. 丢失的数字
    163-20. 有效的括号
    Sword 30
    Sword 29
    Sword 27
    Sword 25
    Sword 24
    Sword 22
    Sword 21
    Sword 18
  • 原文地址:https://www.cnblogs.com/cyendra/p/3226303.html
Copyright © 2011-2022 走看看