zoukankan      html  css  js  c++  java
  • poj 3274 Gold Balanced Lineup 夜

    http://poj.org/problem?id=3274

    不得不说自己的哈希水平很烂 此题完全抄了别人的代码,看来以后要看看哈希呀

    先贴代码日后消化

    #include<iostream>
    #include<string>
    #include<string.h>
    #include<queue>
    #include<math.h>
    #include<stdio.h>
    #include<map>

    using namespace std;
    const int N=100010;
    const int prime=99983;
    int n,k;
    int hash[1000000];
    int a[N][31],c[N][31],sum[N][31];
    inline int hashcode(int *a)
    {
        int p=0;
        for(int i=0;i<k;++i)
        {
            p=((p<<2)+((a[i]>>4))^(a[i]<<10));
        }
        p=p%prime;
        if(p<0)
        p=p+prime;
        return p;
    }
    int main()
    {
        scanf("%d %d",&n,&k);
        memset(hash,-1,sizeof(hash));
        memset(c,0,sizeof(c));
        memset(sum,0,sizeof(sum));
        hash[hashcode(c[0])]=0;
        int ans,i,j,itemp;
        ans=0;
        for(i=1;i<=n;++i)
        {
            scanf("%d",&itemp);
            for(j=0;j<k;++j)
            {
                a[i][j]=itemp%2;
                itemp=itemp>>1;
                sum[i][j]=sum[i-1][j]+a[i][j];
                c[i][j]=sum[i][j]-sum[i][0];
            }
            int p=hashcode(c[i]);
            while(hash[p]!=-1)
            {
                for(j=1;j<k;++j)
                {
                    if(c[i][j]!=c[hash[p]][j])
                    break;
                }
                if(j==k)
                {
                    if(i-hash[p]>ans)
                    ans=i-hash[p];
                    break;
                }
                ++p;
            }
            if(hash[p]==-1)
            hash[p]=i;
        }
        printf("%d\n",ans);
        return 0;
    }

  • 相关阅读:
    cad 创建自定义菜单
    标准C++的类型转换符
    Assert usages
    c++排序算法与模板和STL_zhuan
    C++ 中int,char,string,CString类型转换
    C++ 之 C style string
    数据库优化细节——转
    C++容器——zhuan
    公共类库_address:http://www.cnblogs.com/wuhuacong/archive/2012/03/26/2418786.html
    C++学习篇——C++ STL中迭代器介绍(收集)
  • 原文地址:https://www.cnblogs.com/liulangye/p/2457340.html
Copyright © 2011-2022 走看看